shell centos 开源 google linux wordpress 微软 Firefox linux命令 Android Windows Python mysql HTML5 nginx Ubuntu java 程序员 php apache

使用 Nagios 来监控网卡流量

下载地址为:check_traffic 。 总体设置可以分为两块, 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

#改systemmib2

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

注:

  • -Vsnmp协议版本。
  • -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目标主机)。
  2. nagios服务器snmp连接测试及网卡参数确定。
  3. nagios服务器commands.cfg配置。
  4. service.cfg监控项目添加。
  5. 重启nagios服务测试。

具体实施:

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

设置主机snmp协议

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

image1.png

防火墙:

image2.png

路由器:

image3.png
image4.png

交换机:

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

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时需用到。

 配置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
}

 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
}
[root@nagios nagios]# !1025
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
………………
Total Warnings: 0
Total Errors: 0

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

监控效果图:

image5.png

Pnp图形:

image6.png

延伸阅读

评论