使用Zabbix的SNMP trap监控类型监控设备的一个例子
本文以监控绿盟设备为例。
1.登录被监控的设备的管理系统,配置snmptrap地址指向zabbix服务器或代理服务器。
snmptrap地址也叫陷阱。
2.验证是否能在zabbix服务器或代理服务器上收到设备的trap信息。(可跳过,遇到问题后再检查)
查看设备的网卡名称
tcpdump -i ens160 src 192.166.16.8
查看ens160 网卡收到的IP为192.166.16.8的设备的数据包
效果如下图:
没有tcpdump命令的话,可以使用命令yum -y install tcpdump 进行安装。
3.配置zabbix_trap_receiver.pl脚本
在zabbix 服务器或者代理服务器上,复制源码目录中的Perl脚本到 /usr/bin目录下并赋予执行权限
再安装net-snmp,命令如下:
yum -y install net-snmp*
效果如下图:
注意:如果最后snmptrapd启动失败,提示缺少/usr/share/snmp/snmp_perl_trapd.pl文件,原因是net-snmp相关的安装包安装太少,建议更换yum安装源。
wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.2.1/zabbix-2.2.1.tar.gz
4.找到snmptrapd的配置文件并修改
vi /etc/snmp/snmptrapd.conf
添加代码
disableAuthorization yes
perl do "/usr/bin/zabbix_trap_receiver.pl"
disableAuthorization yes 表示不认证,接收所有团体名(community)的 trap信息
authCommunity execute public 表示只接收团体名(community)为 public 的 trap信息,可以写多行
修改完成后重启snmptrapd服务
service snmptrapd restart
或
systemctl restart snmptrapd
注意一段时间后观察snmptrapd状态是否正常,时间久的话可以看到收到了设备发出的trap包
service snmptrapd status
或
systemctl status snmptrapd
5.在zabbix服务器上修改zabbix_server.conf文件以下两处:
StartSNMPTrapper=1
SNMPTrapperFile=/tmp/zabbix_traps.tmp
(注: /usr/bin/zabbix_trap_receiver.pl脚本中设置trap信息路径为/tmp/zabbix_traps.tmp ;所有zabbix-server的路径应设置一样的.)
修改完成后重启zabbix_server服务
service zabbix_server restart
或
systemctl restart zabbix_server
6.在zabbix服务器上配置监控主机,添加监控项。
效果如图所示:
监控项:
名称:snmptrap.fallback
类型:SNMP trap
键值:snmptrap.fallback
信息类型:日志
日志时间格式:hh:mm:sszyyyy/MM/dd
解析:
键值为snmptrap.fallback,可以接受所有未配置的trap监控项。
7.查看监控主机的最新数据。
在最新数据里选择被监控的主机,点击snmptrap.fallback的历史记录
如下图,在此处可以看到被监控设备发出的trap信息,但是从OID上不能明显看出对应的信息,因此需要为net-snmp添加mib文件。
8.在zabbix服务器或代理服务器上添加mib文件。
net-snmp-config --default-mibdirs 命令可以看到mib文件位置,如下:
[root@mgmtmonitorweb02 ~]# net-snmp-config --default-mibdirs /root/.snmp/mibs:/usr/share/snmp/mibs
cd /usr/share/snmp/mibs 打开存储mib文件的目录
ls 可以看到自带的mib文件,此处WAFV6-MIB.txt是我找厂商售后索取的mib文件
9.在zabbix服务器或代理服务器上应用mib文件。
vi /etc/snmp/snmp.conf 修改此配置文件
mibs +ALL 在文件中添加此行,意思是应用mib文件目录下的所有mib文件
解析:
mibs +后面可以填写mib文件的名字,如mibs +WAFV6-MIB,需要注意的是“+”号后直接加文件名,不可出现空格,否则会有错误。
修改完成后重启snmptrapd服务
service snmptrapd restart
或
systemctl restart snmptrapd
重启注意后观察snmptrapd状态是否正常,时间久的话可以看到收到了设备发出的trap包。
service snmptrapd status
或
systemctl status snmptrapd
此时可以看到,OID的名字已经发生改变。
10.在zabbix服务上验证最新数据是否发生改变。
此时可以看到OID不再是数字,而是比较容易识别的英文名字,此名字可在mib文件中修改,但不能以中文命名。
11.如果需要分类trap信息,可以如下图配置监控项。
注意:此时键值snmptrap[]的[]内不再是填写数字OID,而是监控项snmptrap.fallback获取到的mib文件里定义的名字,
如:snmptrap[WAFV6-MIB::alert-level]
测试snmptrap -v 1 -c public 127.0.0.1 '.1.3.6.1.6.3.1.1.5.4' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.4 s "eth0"
参考资料:
http://www.lwops.cn/forum.php?mod=viewthread&tid=74&extra=&_dsign=8bd9d823&tdsourcetag=s_pctim_aiomsg
http://blog.chinaunix.net/uid-20469830-id-1943491.html
https://www.zabbix.com/documentation/3.4/zh/manual/config/items/itemtypes/snmptrap