nagios 网卡监控流量脚本使用

回复 收藏
本帖最后由 jade 于 2014-10-20 09:30 编辑

本文经过反复参考网上各种大神的帖子,经过实际测试,得出(本人)结果:1,有很好的邮件发送机制 ,这个是很棒的;2,感觉根绝公司的业务不同,需求不同(我们公司需要及时性,但nagios是持续性检查,也许还有很多地方不理解而已)
    下面是操作步骤和注意事项:
1.安装nagios 跟阿明老师的帖子一样步骤略过
2.下载流量监控脚本(check_traffic.sh
下载下来的check_traffic.sh上传至被监控主机的目录下
cd /usr/lib/nagios/plugins/
如图所示(q1)

更改属主为nagios并修改文件权限
chown nagios.nagios check_traffic.sh
chmod 755 check_traffic.sh
检查网卡
/usr/lib/nagios/plugins/check_traffic.sh -V 2c -C public -H 127.0.0.1 –L
然后会列出被监控机的网卡信息,查看需要监控的网卡,记录其index值即可
如图所示(q2)

测试是否可以正常采集数据
./check_traffic.sh -V 2c -C public -H118.123.172.79 -I 5 -w 300,350 -c 500,600 -K -B

如图所示(q3)

-V为snmp的版本,-C为团体名,-I参数对应上面-L输出的Interface index的值,标识监控的网卡,如需了解该插件的其它用法可以使用-h来获取帮助
更改/var/tmp/check_traffic* 文件权限为nagios用户可读写,我们直接给该文件为777,简单。
[root@Linux227 nagios]# chmod 777  /var/tmp/check_traffic_127.0.0.1_2.hist_dat_root__64

Nagios服务器即监控端添加流量检测命令
vim /usr/local/nagios/etc/object/command.cfg添加如下内容
# 'check_traffic' command definition
define command{
command_name check_traffic
command_line $USER1$/check_traffic.sh -V 2c -C public -H $HOSTADDRESS$ -I $ARG1$ -w $ARG2$,$ARG3$ -c $ARG4$,$ARG5$ -K -B
}
注:
-C后参数为在服务器上设置的community值;
-I为大写的i,为网卡接口的index值;
-w与-c后的两个参数分别为in/out的流量阈值。
监控网络设备接口的流量(以防火墙为例)
在防火墙上启用snmp并配置团体名等信息。
在Nagios服务器上输入如下命令获取接口的index信息
./check_traffic.sh -V 2c -C public -H 10.0.192.6 –L
3,define service {}
4,检查nagios.cfg文件无误后,重启nagios.
说明:
Windows主机和网络设备(交换机、路由器、防火墙)上都是没办法安装nrpe插件的。所 以我们只有通过snmp协议采集。(两者异同之处就在于snmp数据报文是否在网络中传输。前者snmp数据只会在本机产生,自己采集自身数据而后由nrpe插件传输到nagios服务器前端显示出来(数据文件在本机)。后者则是nagios服务器通过snmp协议采集目标主机信息而后前端显示(数据文件在服务器)。
一、监控Linux网卡流量(在Nagios服务端和被监控Linux主机均安装SNMP,以CentOS6为例)
1、安装与配置snmp
1) 安装net-snmp,主要安装如下软件包
net-snmp net-snmp-devel net-snmp-libs net-snmp-utils net-snmp-perl
[root@localhost ~]# yum install -y net-snmp*
2) 设置开启自动启动snmp
[root@localhost ~]# chkconfig snmpd on
3) 配置snmp
[root@localhost ~]# vi /etc/snmp/snmpd.conf
① 更改团体名(Community)
找到下面这句
# sec.name source community
com2sec notConfigUser default public   //团体名为public,也可以更改为任意名称
② 授于权限
找到下面这句
# group context sec.model sec.level prefix read write notif
access notConfigGroup "" any noauth exact systemview none none
将systemview更改为all或者mib2
然后再找到下面这几句
## incl/excl subtree mask
#view all included .1 80
## -or just the mib2 tree-
view mib2   included  .iso.org.dod.internet.mgmt.mib-2 fc
去掉view all included .1 80或view mib2  included  .iso.org.dod.internet.mgmt.mib-2 fc前面的“#”注释符。
4) 启动snmp
[root@localhost ~]# /etc/init.d/snmpd start
如果已经启动则输入如下命令重启
[root@localhost ~]# /etc/init.d/snmpd restart
5) 查看snmp端口是否打开
[root@localhost ~]# netstat -ln |grep 161
udp        0      0 0.0.0.0:161                 0.0.0.0:*  
==========================================================
观察日志
/var/log/maillog 查看下nagios.log查看下
查看系统自带的邮件,选中其一
如图所示(q4)


alternatives --config mta

查看一下printfmail命令的路径对不。
which 命令
command.cfg 对比下

看看25端口是监控在sendmail上。

如图所示(q5)


然后重启nagios 自测下:

echo ‘aaaa’ |mail pengy@auto11.com

配置报错:
如图所示(q6)

解决方案
traffic 脚本会生成一个临时文件和目录,一定要给nagios所属主的权限。

如果你在管理员下执行一次,会生成一个root所属主的临时文件,然后nagios自动执行,就无法读写临时文件。

你就把执行一下命令:chown -R nagios.nagios /var/tmp/

nagios调用检查命令都是以nagios用户来生成子进程的。
            以上,有什么不对的地方可以指正,谢谢 !!!



q1.jpg q2.jpg q3.jpg q4.jpg q5.jpg q6.jpg
2014-10-20 08:59 举报
已邀请:
0

阿铭 管理员

赞同来自:

图片设置了防盗链 所以需要你重新上传
0

jade

赞同来自:

呃 。。。不是我想放图片的地方。。。唉。。。本来是想放到文档中。。估计要好看些

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: