使用swatch实时监控cisco路由器(一)
>首页 -> 社会专题 -> 硬件网络 2010-07-10 来源: 作者: 【】 浏览:1331

swatch可以实时监控系统日志文件,在匹配到特定的事件时执行指定的动作。swatch所监控的事件以及对应事件的动作都存放在swatch的配置文件中。预设的配置文件为用户根目录下的.swatchrc。

swatch的功能很多,我这里主要是通过swatch来监控Cisco路由器和H3C交换机端口状态。

我的系统环境为:Gentoo-2007.0_amd64

准备:

1、配置syslog-ng日志服务器以接收日志

2、配置cisco路由器和H3C交换机将日志发送到日志服务器

一、从这里下载最新版的swatch,目前的最新版本是

http://sourceforge.net/project/showfiles.php?group_id=68627

二、安装

#tar swatch-3.2.2.tar.gz

#cd swatch-3.2.2

#perl Makefile.PL

如果出现:

Warning: prerequisite Date::Calc 0 not found at (eva l 1) line 219.

Warning: prerequisite Date::Parse 0 not found at (eva l 1) line 219.

Warning: prerequisite File::Tail 0 not found at (eva l 1) line 219.

Warning: prerequisite Time::HiRes 1.12 not found at (eva l 1) line 219.

则需要安装这个模块,方法是:

#perl -MCPAN -e shell (配置CPAN模块安装环境)

cpan>install Date::Calc

cpan>install Date::Parse

cpan>install File::Tail

cpan>install Time::HiRes

cpan>exit

#perl Makefile.PL

#make

#make test

#make install

#make realclean

三、配置

我的配置文件/usr/local/etc/netdevicerc,主要用于监控监控路由器和交换机的端口状态,一旦发生变化会发邮件报警:

watchfor = /changed state|STATUS CHANGE\(l\)/

mail = user@yourdomain.com, from = "notify \<notify\@yourdomain.com\>"

watchfor指定需要在日志中通过tail配置的关键字,是正则表达式。

注意第二行,我加入了from的指令,即定义swatch发邮件时的发件人,这需要修改swatch的Actions.pm文件,这个这个文件位于:/usr/lib64/perl5/site_perl/5.8.8/Swatch/Actions.pm,在send_email子程序print MAIL_PIPE <<"EOF";前加入以下行:

(my $from_line = $args{'FROM'}) =~ s/:/,/g;

my @mail_body;

my $s_body;

my $temp_mess = $args{'MESSAGE'};

$temp_mess =~ s/administratively//;

if ($temp_mess =~ /Line protocol/) {

@mail_body = (split " ",$temp_mess);

$mail_body[13] =~ s/,//;

$s_body = "$mail_body[3]'s $mail_body[13] is $mail_body[17]!";

} elsif ($temp_mess =~ /h3c/) {

@mail_body = (split " ",$temp_mess);

$mail_body[11] =~ s/://;

$s_body = "$mail_body[3]'s $mail_body[11] is $mail_body[13]!";

} else {

@mail_body = (split " ",$temp_mess);

$mail_body[10] =~ s/,//;

$s_body = "$mail_body[3]'s $mail_body[10] is $mail_body[14]!";

}

对照原始文件修改以下行

print MAIL_PIPE <<"EOF";

From: $from_line

To: $to_line

Subject: $s_body

$args{'MESSAGE'}

EOF

close(MAIL_PIPE);

}

您看到此篇文章时的感受是:
Tags: 责任编辑:佚名
免责申明: 除原创及很少部分因网文图片遗失而补存外,本站不存储任何有版权的内容。你看到的文章和信息及网址索引均由机器采集自互联网,由于时间不同,内容可能完全不同,请勿拿本网内容及网址索引用于交易及作为事实依据,仅限参考,不会自行判断者请勿接受本站信息,本网转载,并不意味着赞同其观点或证实其内容的真实性.如涉及版权等问题,请立即联系管理员,我们会予以更改或删除,保证您的权利.对使用本网站信息和服务所引起的后果,本网站不作任何承诺.
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论:0条】 【关闭】 【返回顶部
更多
上一篇CISCO配置syslog的方法 下一篇Vmware下的网络设置及三种工作模..
密码: (新用户注册)

最新文章

图片主题

热门文章

推荐文章

相关文章

便民服务

手机扫描

空间赞助

快速互动

论坛互动
讨论留言

有事联系

有哪个那个什么的,赶紧点这里给DOVE发消息

统计联系

MAIL:gnlt@Dovechina.com
正在线上:

版权与建议

任何你想说的