本文所用到的监控流量插件来自"石头"的 1.20 版 shell 插件。感谢之。。。。

下载地址为: 点击下载 。 总体设置可以分为两块, linux 主机及非 linux 主机。稍有出入。不多说直接上配置

一、linux主机

主要步骤:

     1、安装snmpd服务软件包并设置启动之。

     2、上传监控插件至被监控机nagios/libexec目录并授权

     3、网卡参数检测

     4、nrpe.cfg文件增加监控command

     5、nagios服务器配置service.cfg添加监控项


具体实施:

1、 安装修改启动snmpd服务

安装:[root@nagios nagios]# yum -y install net-snmp*

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

Setting up Install Process

Package 1:net-snmp-devel-5.3.2.2-9.el5_5.1.i386 already installed and latest version

Package 1:net-snmp-libs-5.3.2.2-9.el5_5.1.i386 already installed and latest version

Package 1:net-snmp-utils-5.3.2.2-9.el5_5.1.i386 already installed and latest version

Package 1:net-snmp-perl-5.3.2.2-9.el5_5.1.i386 already installed and latest version

Package 1:net-snmp-5.3.2.2-9.el5_5.1.i386 already installed and latest version

Nothing to do

#我已经安装过了。。就上面这些包了。。

修改snmpd.conf

# sec.name source community

com2sec notConfigUser 127.0.0.1(localhost也可不改) XXXX(共同体名)


# group context sec.model sec.level prefix read write notif

access notConfigGroup "" any noauth exact mib2 none none

#改system为mib2


view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc

#去掉前面的"#"注释符



2、上传插件被授权


上传check_traffic.sh至/usr/local/nagios/libexec

改属主为:nagios

chown nagios.nagios ./check_traffic.sh


3、网卡参数检测:

[root@OAServer etc]# /usr/local/nagios/libexec/check_traffic.sh -V 2c -C public -H 127.0.0.1 -L

List Interface for host 127.0.0.1.

Interface index 1 orresponding to lo

Interface index 2 orresponding to bond0

Interface index 3 orresponding to eth0

Interface index 4 orresponding to eth1

Interface index 5 orresponding to sit0

可以测试是否能够正常采集到数据

/usr/local/nagios/libexec/check_traffic.sh -V 2c -C public -H 127.0.0.1 -I 2 -w 1200,1500 -c 1700,1800 -K -b

OK - The Traffic In is 356Kbps, Out is 414Kbps, Total is 770Kbps. The Check Interval is 30s |In=356Kbps;1200;1700;0;0 Out=414Kbps;1500;1800;0;0 Total=770Kbps;2700;3500;0;0 Interval=30s;1200;1800;0;0

注:-V snmp协议版本

-C 共同体名

-I 参数对应上面-L输出的网卡index值。标示监视相应的网卡。

该插件其它使用方法及各参数解释详情"-help"或者看上面论坛石头描述

更改/var/tmp/check_traffic* 文件权限为nagios用户可读写。简单的给个777吧。。

chmod 777 /var/tmp/check_traffic_127.0.0.1_2.hist_dat_root__32


4、 更改nrpe.cfg增加如下行:

command[check_traffic]=/usr/local/nagios/libexec/check_traffic.sh -V 2c -C public -H 127.0.0.1 -I 2 -w 300,350 -c 500,600 -K -B


重启nrpe程序

[root@OAServer ~]# ps aux |grep nrpe

nagios 2822 0.0 0.0 4808 1448 ? Ss Jun01 0:04 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

root 1123 0.0 0.0 5936 736 pts/2 S+ 11:02 0:00 grep nrpe

[root@OAServer ~]# kill -9 2822

/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d


5、nagios服务器(监控端)编辑service.cfg增加监控网卡流量项目;

define service{

host_name WEB

service_description check_traffic

check_command check_nrpe!check_traffic

max_check_attempts 5

normal_check_interval 3

retry_check_interval 2

check_period 24x7

notification_interval 10

notification_period 24x7

notification_options w,u,c,r

contact_groups sagroup

}



二、其它设备:(win主机、交换、路由、防火墙)

这些主机上都是没办法安装nrpe插件的。所以我们只有通过snmp协议采集。(两者异同之处就在于snmp数据报文是否在网络传输。前者snmp数据只会在本机产生,自己采集自身数据而后由nrpe插件传输到nagios服务器前端显示出来(数据文件在本机)。后者则是nagios服务器通过snmp协议采集目标主机信息而后前端显示(数据文件在服务器)。就安全性而言,前者更优于后者。

主要步骤:

1、设置主机snmp协议(共同体名、权限、trap目标主机)

2nagios服务器snmp连接测试及网卡参数确定

3nagios服务器commands.cfg配置

4service.cfg监控项目添加

5、重启nagios服务测试


具体实施:

演示设备:windows2003、netscreen防火墙、H3C路由以及H3C交换机。

1、 设置主机snmp协议

Windows主机:添加snmp组件。。在服务里找到"snmp service"编辑如下:

Nagios 网卡流量监控_nagios

防火墙:

Nagios 网卡流量监控_nagios_02

路由器:

Nagios 网卡流量监控_nagios_03

Nagios 网卡流量监控_nagios_04

交换机:

snmp-agent

snmp-agent local-engineid 800063A2000FE2CCFAA36877

snmp-agent community write XXXXX

snmp-agent sys-info version all

snmp-agent target-host trap address udp-domain XXXXXX params securityname XXXXX


1、 nagios服务器snmp连接测试及网卡参数确定:

以防火墙为例,找到个接口参数:

[root@nagios nagios]# /usr/local/nagios/libexec/check_traffic.sh -V 2c -C ksense -H 192.168.20.254 -L

List Interface for host 192.168.20.254.

Interface index 1 orresponding to ethernet0/0

Interface index 2 orresponding to ethernet0/1

Interface index 3 orresponding to ethernet0/2

Interface index 4 orresponding to ethernet0/3

Interface index 5 orresponding to vlan1

注意:index 后数字和网卡对应关系。后面写service.cfg时需用到。


2、 配置commands.cfg增加如下内容:

[root@nagios nagios]# tail -8 /usr/local/nagios/etc/commands.cfg

#######################################################################

#

#check_traffic

#

#######################################################################

define command{

command_name check_traffic

command_line $USER1$/check_traffic.sh -V 2c -C ksense -H $HOSTADDRESS$ -I $ARG1$ $ARG2$ $ARG3$ -K -B

}


3、 service.cfg监控项目添加:

以防火墙设备为例,其它方法相同

define service{

host_name juniper-ssg-320

service_description check_traffic_trust

check_command check_traffic!1 -w 600,600 -c 800,800

#注:叹号后面数据对应上面的"$ARG1$ $ARG2$ $ARG3$"3个字段,中间空格隔开

max_check_attempts 5

normal_check_interval 3

retry_check_interval 2

check_period 24x7

notification_interval 10

notification_period 24x7

notification_options w,u,c,r

contact_groups sagroup

}

define service{

host_name juniper-ssg-320

service_description check_traffic_DMZ

check_command check_traffic!2 -w 600,600 -c 800,800

max_check_attempts 5

normal_check_interval 3

retry_check_interval 2

check_period 24x7

notification_interval 10

notification_period 24x7

notification_options w,u,c,r

contact_groups sagroup

}

define service{

host_name juniper-ssg-320

service_description check_traffic_untrust1

check_command check_traffic!3 -w 600,600 -c 800,800

max_check_attempts 5

normal_check_interval 3

retry_check_interval 2

check_period 24x7

notification_interval 10

notification_period 24x7

notification_options w,u,c,r

contact_groups sagroup

}

define service{

host_name juniper-ssg-320

service_description check_traffic_untrust2

check_command check_traffic!4 -w 600,600 -c 800,800

max_check_attempts 5

normal_check_interval 3

retry_check_interval 2

check_period 24x7

notification_interval 10

notification_period 24x7

notification_options w,u,c,r

contact_groups sagroup

}

5、

[root@nagios nagios]# !1025

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

………………


Total Warnings: 0

Total Errors: 0

检查下配置文件是否有报错。。。没有就重启nagios服务即可生效了。


监控效果图:


Nagios 网卡流量监控_nagios_05



Pnp图形:

Nagios 网卡流量监控_nagios_06