监控交换机大多是监控交换机端口up/down,以及端口流量 。
监控开启状态需要snmp协议,请确保交换机及路由已开启snmp,并设置好社区集(community),监控流量需要mrtg
1、安装mrtg
yum install mrtg Perl libpng zlib
2、修改snmpd的配置,以使其允许mrtg读取其interface(网络接口) 流量数据。
vi /etc/snmp/snmpd.conf
将#view systemview included mib2
的内容修改为:
view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
然后将
access notConfigGroup "" any noauth exact systemview none none
修改为:
access notConfigGroup "" any noauth exact mib2 none none
然后再重新启动snmpd:
/etc/rc.d/init.d/snmpd restart
3、执行如下命令创建配置文档
cfgmaker -output=/var/www/mrtg/name.cfg SNPM社区集@IP地址
例如:
cfgmaker -output=/var/www/mrtg/myswitch.cfg [email protected]
4、修改name.cfg,即myswitch.cfg,添加红色文字部分,开头不能有空格,冒号也不能少
vim /var/www/mrtg/myswitch.cfg
# for UNIX
# WorkDir: /home/http/mrtg
WorkDir: /var/www/mrtg/
5、再执行下面的命令创建对应的端口信息
env LANG=C /usr/bin/mrtg /var/www/mrtg/name.cfg(一般需要执行两边,有时候三遍)
运行成功后ls /var/www/mrtg看看都有哪些端口的信息
6、添加到crontab中
*/5 * * * * env LANG=C /usr/bin/mrtg /var/www/mrtg/myswitch.cfg
7、添加mrtg到nagios
vim command.cfg
# 'check_local_mrtgtraf' command definition
define command{
command_name check_local_mrtgtraf
command_line $USER1$/check_mrtgtraf -F $ARG1$ -a $ARG2$ -w $ARG3$ -c $ARG4$ -e $ARG5$ ;-F 日志位置及名称,-a 带宽,-w 警告阀值, -c 严重警告阀值 , -e 时间,默认单位分钟
}
8、启用nagios.cfg中的cfg_dir=/usr/local/nagios/etc/switches
9、创建、编辑nagios中的交换机配置文档
cp -p /usr/local/nagios/etc/objects/swithe.cfg /usr/local/nagios/etc/switches/myswitch.cfg
如果没有switches 就创建一个
mkdir /usr/local/nagios/etc/switches
chown nagio:nagios /usr/local/nagios/etc/switches
chmod 755 /usr/local/nagios/etc/switches
vim /usr/local/nagios/etc/switches/myrouter.cfg
# Define the switch that we'll be monitoring
define host{
use generic-switch ; 调用templatles.cfg中的模板,多个模板用逗号隔开
host_name myswitch ;交换机名
parents 192.168.0.1 ; 该交换机的上级设被,多个用逗号隔开
alias switch ; 别名
statusmap_image switch40.jpg ;在拓扑图中交换机的图片
address 192.168.1.1 ;交换机IP
hostgroups switches ;所属组
}
define service{
use generic-service ;多个模板用逗号隔开
host_name myswitch ; 多个名字用逗号隔开
service_description PING ; The service description
check_command check_ping!200.0,20%!600.0,60% ; ping200次,丢失20%告警,ping600次,丢失60%严重告警
normal_check_interval 5
retry_check_interval 1
}
# Monitor uptime via SNMP
define service{
use generic-service
host_name myswitch
service_description Uptime
check_command check_snmp!-C public -o sysUpTime.0 ;检查开机时长
}
# Monitor Port 1 status via SNMP
define service{
use generic-service
host_name myswitch
service_description port1
check_command check_snmp!-C public -o ifOperStatus.1005 -r 1 -m RFC1213-MIB
检查端口1的开启状态,1表示开启,当不是1时告警
}
# Monitor bandwidth via MRTG logs
define service{
use generic-service
host_name myswitch
service_description port1
check_command check_local_mrtgtraf!/var/www/mrtg/192.168.1.1_1001.log!AVG!20000000,20000000!17500000,17500000!10 ;检查1号端口的流量 ,2个20000000和17500000是因为带宽分为上下行
}