免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 16755 | 回复: 1

[Zabbix] 使用Zabbix的SNMP trap监控类型监控设备的一个例子 [复制链接]

论坛徽章:
0
发表于 2018-12-21 14:25 |显示全部楼层
本帖最后由 乐维君_ 于 2018-12-21 14:29 编辑

本文以监控绿盟设备为例。
1.登录被监控的设备的管理系统,配置snmptrap地址指向zabbix服务器或代理服务器。

snmptrap地址也叫陷阱。

2.配置或关闭防火墙,并验证是否能在zabbix服务器或代理服务器上收到设备的trap信息。
2.1 旧版防火墙开放UDP的162端口的命令如下:
  1. vi /etc/sysconfig/iptables
复制代码
编辑防火墙的配置文件。
  1. -A INPUT -p udp -m udp --dport 162 -j ACCEPT
复制代码
添加一行代码。
  1. /etc/init.d/iptables restart
复制代码
重启防火墙,使配置生效。

2.2 新版防火墙开放UDP的162端口命令如下:
  1. firewall-cmd --permanent --add-port=162/udp
  2. firewall-cmd --reload
  3. firewall-cmd  --list-ports
复制代码
命令解析:
firewall-cmd --permanent --add-port=162/udp   永久开放UDP协议的162端口
firewall-cmd --reload           更新防火墙规则
firewall-cmd --list-ports       查看所有开放的端口

2.3 开放防火墙后,验证是否能在zabbix服务器或代理服务器上收到设备的trap信息,命令如下:
  1. ip add
复制代码
查看设备的网卡名称
  1. tcpdump -i ens160 src 192.166.16.8
复制代码
查看ens160 网卡收到的IP为192.166.16.8的设备的数据包
效果如下图:

1.png
没有tcpdump命令的话,可以使用命令yum -y install tcpdump 进行安装。

3.配置zabbix_trap_receiver.pl脚本
在zabbix 服务器或者代理服务器上,复制源码目录中的Perl脚本到 /usr/bin目录下并赋予执行权限
然后安装net-snmp,命令如下:
  1. cp  `find / -name zabbix_trap_receiver.pl`  /usr/bin
  2. chmod a+x /usr/bin/zabbix_trap_receiver.pl        
  3. yum -y  install   net-snmp*
复制代码
效果如下图:
2.png
注意,此处可能遇到的问题:如果最后snmptrapd启动失败,提示缺少/usr/share/snmp/snmp_perl_trapd.pl文件,原因是net-snmp相关的安装包安装太少,建议更换yum安装源。

4.找到snmptrapd的配置文件并修改,命令如下:
  1. vi  /etc/snmp/snmptrapd.conf
复制代码
添加代码
  1. disableAuthorization  yes
  2. perl do "/usr/bin/zabbix_trap_receiver.pl"
复制代码
disableAuthorization yes 表示不认证,接收所有团体名(community)的 trap信息
authCommunity execute public  表示只接收团体名(community)为 public 的 trap信息,可以写多行

修改完成后重启snmptrapd服务,命令如下:
  1. service snmptrapd restart
复制代码

  1. systemctl restart snmptrapd
复制代码

注意一段时间后观察snmptrapd状态是否正常,时间久的话可以看到收到了设备发出的trap包
也可以主动发送测试trap信息:
[color=rgb(68, 68, 6]
snmptrap -v 1 -c public 127.0.0.1 '.1.3.6.1.6.3.1.1.5.3' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.3 s "teststring000"


查看snmptrapd状态,命令如下:
  1. service snmptrapd status
复制代码

  1. systemctl status snmptrapd
复制代码

3.png

5.在zabbix服务器上修改zabbix_server.conf文件的以下两处:
StartSNMPTrapper=1
SNMPTrapperFile=/tmp/zabbix_traps.tmp
(注:最后一行的路径必须跟 /usr/bin/zabbix_trap_receiver.pl脚本中设置的路径相同)

修改完成后重启zabbix_server服务,命令如下:
  1. service  zabbix_server  restart
复制代码

  1. systemctl  restart  zabbix_server
复制代码

6.在zabbix服务器上配置监控主机,添加监控项。
效果如图所示:

4.png
监控项:
名称:snmptrap.fallback
类型:SNMP trap
键值:snmptrap.fallback
信息类型:日志
日志时间格式:hh:mm:sszyyyy/MM/dd
解析:
键值配置为snmptrap.fallback,可以接收所有未配置成SNMPtrap监控项的设备发出的trap信息。

7.查看监控主机的最新数据,验证实验结果。
在最新数据里选择被监控的主机,点击snmptrap.fallback的历史记录。
5.png
效果如下图,在此处可以看到被监控设备发出的trap信息,但是从OID上不能明显看出对应的信息,因此需要为net-snmp添加mib文件。


6.png

到此步骤,已基本完成SNMP trap监控类型的配置,后面的为进阶配置,主要是为了解决不能直观地看出对应信息的问题。

8.在zabbix服务器或代理服务器上添加mib文件。
net-snmp-config --default-mibdirs   命令可以看到mib文件位置,效果如下:
[color=rgb(68, 68, 6]
[root@mgmtmonitorweb02 ~]# net-snmp-config --default-mibdirs
/root/.snmp/mibs:/usr/share/snmp/mibs
[root@mgmtmonitorweb02 ~]#


cd /usr/share/snmp/mibs    打开存储mib文件的目录
ls              可以看到自带的mib文件,此处WAFV6-MIB.txt是我找厂商售后索取的mib文件
效果如下图:

7.png

9.在zabbix服务器或代理服务器上应用mib文件。
vi /etc/snmp/snmp.conf         修改此配置文件
mibs +ALL                     在文件中添加此行,意思是应用mib文件目录下的所有mib文件
效果如下图:

8.png
解析:
mibs +后面可以填写mib文件的名字,如mibs +WAFV6-MIB,需要注意的是“+”号后直接加文件名,不可出现空格,否则会有错误。

修改完成后重启snmptrapd服务,命令如下:
  1. service snmptrapd restart
复制代码

  1. systemctl restart snmptrapd
复制代码

重启注意后观察snmptrapd状态是否正常,时间久的话可以看到收到了设备发出的trap包。命令如下:
  1. service snmptrapd status
复制代码

  1. systemctl status snmptrapd
复制代码
此时可以看到,OID的名字已经发生改变。效果如下图:

9.png

10.在zabbix服务上验证最新数据是否发生改变。效果如下图:

10.png
此时可以看到OID不再是数字,而是比较容易识别的英文名字,此名字可在mib文件中修改,但不能以中文命名。

11.如果需要分类trap信息,可以如下图配置监控项。

11.png
注意:此时键值snmptrap[]的[]内不再是填写数字OID,而是监控项snmptrap.fallback获取到的mib文件里定义的名字,

如:snmptrap[WAFV6-MIB::alert-level]







论坛徽章:
0
发表于 2018-12-21 14:26 |显示全部楼层
补充:
以下是本人在做此实验时遇到的两个问题:
问题一:snmptrapd服务启动失败,提示缺少/usr/share/snmp/snmp_perl_trapd.pl文件。
原因:net-snmp相关的安装包安装太少。
解决办法:更换yum安装源后重新使用yum -y install net-snmp*。此处,本人挂载了cenos 7.5的最新镜像文件并配置yum源后,解决了此问题。
问题二:snmptrapd服务启动成功,但在收到trap信息后,snmptrapd服务停止,提示段错误或内存不足,查看空闲内存还有很多。
原因:未知。
解决办法:配置另一台机器为代理服务器,使用代理服务器去监控设备。

参考资料:
https://www.zabbix.com/documenta ... /itemtypes/snmptrap
http://blog.chinaunix.net/uid-20469830-id-1943491.html
http://www.lwops.cn/forum.php?mo ... etag=s_pctim_aiomsg
http://www.lwops.cn/forum.php?mo ... amp;_dsign=344908d3
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

基于案例的 SQL 优化实战训练营

讲师:中电福富特级专家梁敬彬,参与本次课程培训,你将收获:
1. 能编写出较为高效的 SQL;
2. 能解决70%以上的数据库常见优化问题;
3. 能得到老师提供的高效的相关工具和解决方案;
4. 能举一反三,收获不仅仅是 SQL 优化。
现在购票享受8.8折优惠!
----------------------------------------
优惠时间:2019年3月20日前

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP