zabbix使用SNMP Trap方式监控设备的配置方法

以SNMP trap方式监控设备是指当被监控设备(支持SNMP的)发生障碍时,通多162端口将障碍信息发送到采集机上的一种主动式监控方法。本文以zabbix server作为采集机,采集trap消息。zabbix使用perl脚本或SNMPTT对接收到的trap消息进行格式化并报错。

zabbix处理trap消息的流程如下:

  1. snmptrapd 收到trap
  2. snmptrapd将trap传递给SNMPTT或调用Perl接收器处理
  3. SNMPTT或Perl trap接收器解析,格式化并将trap写入文件
  4. Zabbix SNMP trapper读取并解析trap文件
  5. 对于每个trap,Zabbix找出所有主机IP/DNS与trap消息中接收地址相匹配的所有“SNMP trap”监控项。
  6. 对于每个找到的监控项,将trap与监控项“snmptrap[regexp]”中的正则表达式进行匹配,将匹配到的trap设为该监控项的值。如果没有找到匹配的监控项且存在“snmptrap.fallback”监控项,则将trap设置为“snmptrap.fallback”的值。
  7. 如果trap未设置为任何监控项的值,Zabbix默认记录不匹配的trap。(通过Administration → General → Other中的“Log unmatched SNMP traps”配置。)

配置过程如下:

1、拷贝zabbix源码中的zabbix_trap_receiver.pl到/usr/bin目录下

$ cp zabbix-3.4.14/misc/snmptrap/zabbix_trap_receiver.pl
$ chmod +x zabbix_trap_receiver.pl

2、配置snmptrapd.conf

$ vi /etc/snmp/snmptrapd.conf

添加如下内容:

authCommunity execute storage_public
authCommunity execute emc_storage
authCommunity execute hds_storage
perl do "/usr/bin/zabbix_trap_receiver.pl";

表示snmptrapd将接收coumunity值为storage_public或emc_storage或hds_storage的trap消息,并发送给脚本zabbix_trap_receiver.pl进行处理。

此处配置的community值有三种方式获得:

如果设备snmp配置页面可自定义,则填写自定义的值;

如果设备snmp配置页面无法自定义,但可发送测试trap消息,则发送测试消息并在采集机端进行抓包以获得community的值。例如:

# tcpdump -i eth1 host 172.20.8.143 and port 162        
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
16:18:48.278063 IP 172.20.8.143.44685 > 192.168.128.207.snmptrap:  C=storage_public V2Trap(342)  system.sysUpTime.0=118770274 S:1.1.4.1.0=E:34774.4.1.4.2 E:34774.4.1.3.3.1.0=1 E:34774.4.1.3.3.2.0=2305843009213689856.004094 E:34774.4.1.3.3.3.0=2 E:34774.4.1.3.3.4.0=0 E:34774.4.1.3.3.5.0=1544429531 E:34774.4.1.3.3.6.0=0 E:34774.4.1.3.3.7.0="This alarm just for testing.Please ignore it." E:34774.4.1.3.3.8.0=4294967294 E:34774.4.1.3.3.9.0=07_e2_0c_0a_10_0c_0b_00 E:34774.4.1.3.3.10.0=07_b2_01_01_08_00_00_00
16:18:48.279716 IP 172.20.8.143.34757 > 192.168.128.207.snmptrap:  C=storage_public V2Trap(487)  system.sysUpTime.0=118770274 S:1.1.4.1.0=E:2011.2.91.10.2.1.0.1 E:2011.2.91.10.3.1.1.1.0="Array" E:2011.2.91.10.3.1.1.2.0="[S5900-M100, 210235G79Y10E7000001] None" E:2011.2.91.10.3.1.1.3.0="This alarm just for testing.Please ignore it." E:2011.2.91.10.3.1.1.4.0="Trap test alarm" E:2011.2.91.10.3.1.1.5.0=2 E:2011.2.91.10.3.1.1.6.0=4 E:2011.2.91.10.3.1.1.7.0=507010005 E:2011.2.91.10.3.1.1.8.0=07_e2_0c_0a_10_0c_0b_00 E:2011.2.91.10.3.1.1.9.0=0 E:2011.2.91.10.3.1.1.10.0="This alarm just for testing.Please ignore it." E:2011.2.91.10.3.1.1.11.0=1 E:2011.2.91.10.3.1.1.12.0=2305843009213689856.004094

在抓取的包中找到字段“C=storage_public V2Trap”,可知设备的snmp community值为storage_public,snmp版本为v2。

如果无法通过上述方法获得community值,则咨询设备厂家。

3、配置zabbix_trap_receiver.pl

# vi /usr/bin/zabbix_trap_reveiver.pl
设置字段或保持默认值
$SNMPTrapperFile = '/home/zabbix_traps.tmp';

4、配置zabbix_server.conf

# vi /etc/zabbix/zabbix_server.conf
设置字段
SNMPTrapperFile=/home/zabbix_traps.tmp  (必须与步骤三中一致)
StartSNMPTrapper=1

5、重启zabbix-server,snmp服务应用新配置

# systemctl restart snmpd snmptrapd zabbix-server

6、zabbix web页面配置,新建模板,名称自定义,并为模板创建监控项,如下:

此处未指定正则表达式,表示捕获任何trap消息。

创建触发器,触发器表达式举例如下:

{template_snmptrap:snmptrap[“”].str(TRAP)}=1

表示trap消息中存在字符串“TRAP”则激发触发器。

创建监控主机并链接该模板完成zabbix端的配置。

7、在被监控的设备上配置snmp trap,Trap IP填写采集机地址,端口通常为162,snmp版本通常为2c。

至此,完成所有配置。

Zabbix Server上配置SNMP Trap监控,需要进行以下步骤: 1. 创建SNMP Trap项: 在Zabbix Web界面上,进入“配置”->“主机”,选择要接收SNMP Trap告警的主机,点击“创建项”,设置以下参数: - 名称:自定义,例如“SNMP Trap” - 类型:SNMP Trap - SNMP OID:留空 - 类型信息:选择“数据类型”,例如“文本信息” - 键值:自定义,例如“snmptrap” 2. 创建SNMP Trap触发器: 在“配置”->“触发器”界面上,点击“创建触发器”,设置以下参数: - 名称:自定义,例如“SNMP Trap告警” - 表达式:{<Host>:snmptrap.regexp("<Trap_Message>")},其中<Host>为主机名,<Trap_Message>为要匹配的Trap消息内容,可以使用正则表达式进行模糊匹配。 3. 创建操作: 在“配置”->“操作”界面上,点击“创建操作”,设置以下参数: - 名称:自定义,例如“SNMP Trap告警” - 默认状态:选择“启用” - 操作类型:选择“发送信息”,并设置相应的告警内容和接收人等信息。 4. 关联项、触发器和操作: 在“配置”->“主机”->“魔术”->“触发器”界面上,选择刚刚创建的SNMP Trap项和触发器,点击“添加操作”并选择刚刚创建的操作。 完成以上步骤后,Zabbix Server就可以接收并处理SNMP Trap告警了。当SNMP设备发送符合条件的Trap消息时,Zabbix Server将自动触发相应的操作,例如发送邮件或短信。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洒满阳光的午后

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值