zabbix6.0接收snmptrap,触发告警,解析RFC1628的trap信息
1.配置snmptrap
安装snmp相关工具
yum install -y net-snmp*
官网下载源码,复制misc/snmptrap/zabbix_trap_receiver.pl,确认其中SNMPTrapperFile路径并授权
vim /usr/bin/zabbix_trap_receiver.pl
$SNMPTrapperFile = '/tmp/zabbix_traps.tmp';
chmod a+x /usr/bin/zabbix_trap_receiver.pl
配置zabbix服务器的snmptrap配置并启动(以团体字为public为例)
vim /etc/snmp/snmptrapd.conf
snmpTrapdAddr udp:162
snmpTrapdAddr udp:8162
#默认端口162,也可以指定多个端口
authCommunity log,execute,net public
authCommunity log,execute,net vendor-community
#某些设备(如山特UPS)只能发指定团体字(vendor-community)的trap,因此可能写多行authCommunity
perl do "/usr/bin/zabbix_trap_receiver.pl"
systemctl restart snmptrapd
systemctl enable snmptrapd
systemctl status snmptrapd
配置zabbix服务器的zabbix_server.conf配置。启动snmptrap,修改SNMPTrapperFile,保持与zabbix_trap_receiver.pl中一致
StartSNMPTrapper=1
SNMPTrapperFile=/tmp/zabbix_traps.tmp
systemctl restart zabbix-server
systemctl status zabbix-server
zabbix服务器防火墙放开snmptrap端口
firewall-cmd --permanent --zone=public --add-service=snmptrap
firewall-cmd --reload
snmptrap测试
zabbix服务器上测试
snmptrap -v 2c -c public 127.0.0.1 '' .1.3.6.1.2.1.33.1.6.3.21 .1.3.6.1.2.1.33.1.6.3.21 s 'snmptrap test-v2'
客户端测试
snmptrap -v 2c -c public zabbix-ip '' .1.3.6.1.2.1.33.1.6.3.21 .1.3.6.1.2.1.33.1.6.3.21 s 'snmptrap test-v2'
snmptrap -v 1 -c public zabbix-ip 1.3.6.1.2.1.33 zabbix-ip 6 0 999 1.3.6.1.2.1.33.1.6.3.21 s snmptrap-test-v1
验证
tail /tmp/zabbix_traps.tmp
2.配置告警(以模板UPS RFC 1628 SNMP为例)
创建监控项
名称:SNMP traps (fallback)
类型:SNMP trap
键值:snmptrap.fallback
信息类型:日志
日志时间格式:hh:mm:sszyyyy/MM/dd
# 键值配置为snmptrap.fallback,可以接收所有未配置成SNMPtrap监控项的设备发出的trap信息
创建触发器,只要接受到新的trap信息就触发告警
触发器名称 snmptrap event
表达式 length(last(/UPS RFC 1628 SNMP/snmptrap.fallback))>0
允许手动关闭
3.解析trap信息,配置准确告警(以RFC1628.MIB为例)
以下是进阶配置,将告警信息中的MIB oid翻译为对应的name,以触发准确的trap告警。
确定mib文件路径
net-snmp-config --default-mibdirs
/root/.snmp/mibs:/usr/share/snmp/mibs
将RFC1628.MIB文件上传至/usr/share/snmp/mibs,格式可以保持RFC1628.MIB,也可以RFC1628-MIB.txt.
snmptrap此时仍未解析,客户端测试(其中.1.3.6.1.2.1.33.1.6.3.21=upsAlarmAwaitingPower):
snmptrap -v 1 -c public zabbix-ip 1.3.6.1.2.1.33 zabbix-ip 6 0 999 1.3.6.1.2.1.33.1.6.3.21 s snmptrap-test-v1
snmptrap -v 2c -c public zabbix-ip '' .1.3.6.1.2.1.33.1.6.3.21 .1.3.6.1.2.1.33.1.6.3.21 s 'snmptrap test-v2'
zabbix告警数据:
SNMPv2-SMI::mib-2.33.1.6.3.21 type=4 value=STRING: "snmptrap-test-v1"
修改snmptrapd配置文件,加载新增的MIB库或全部MIB库
vim /usr/lib/systemd/system/snmptrapd.service
ExecStart=/usr/sbin/snmptrapd $OPTIONS -f -m /usr/share/snmp/mibs/RFC1628.MIB
或
ExecStart=/usr/sbin/snmptrapd $OPTIONS -f -m ALL
重启snmptrapd
systemctl daemon-reload
systemctl restart snmptrapd
客户端重新测试
snmptrap -v 1 -c public zabbix-ip 1.3.6.1.2.1.33 zabbix-ip 6 0 999 1.3.6.1.2.1.33.1.6.3.21 s snmptrap-test-v1
snmptrap -v 2c -c public zabbix-ip '' .1.3.6.1.2.1.33.1.6.3.21 .1.3.6.1.2.1.33.1.6.3.21 s 'snmptrap test-v2'
zabbix告警数据可以看到upsAlarmAwaitingPower字段
UPS-MIB::upsAlarmAwaitingPower type=4 value=STRING: "snmptrap-test-v1"
4.创建准确解析的trap监控项
创建监控项
名称:SNMP traps (upsAlarmAwaitingPower)
类型:SNMP trap
键值:snmptrap[UPS-MIB::upsAlarmAwaitingPower]
信息类型:日志
日志时间格式:hh:mm:sszyyyy/MM/dd
# 键值配置为snmptrap[UPS-MIB::upsAlarmAwaitingPower],可以接收所有匹配了UPS-MIB::upsAlarmAwaitingPower的trap信息
创建触发器,只要接受到新的UPS-MIB::upsAlarmAwaitingPower trap信息就触发告警
触发器名称 snmptrap event-upsAlarmAwaitingPower
表达式 length(last(/UPS RFC 1628 SNMP/snmptrap[UPS-MIB::upsAlarmAwaitingPower]))>0
允许手动关闭
附:RFC1628 Trap
| TRAPS | Description | Comments |
|---|---|---|
| upsAlarmBatteryBad | 电池故障 | .1.3.6.1.2.1.33.1.6.3.1 |
| upsAlarmOnBattery | 电池模式 | .1.3.6.1.2.1.33.1.6.3.2 |
| upsAlarmLowBattery | 电池低告警 | .1.3.6.1.2.1.33.1.6.3.3 |
| upsAlarmDepletedBattery | 电池未接或电池耗尽 | .1.3.6.1.2.1.33.1.6.3.4 |
| upsAlarmTempBad | 温度异常 | .1.3.6.1.2.1.33.1.6.3.5 |
| upsAlarmInputBad | 输入异常 | .1.3.6.1.2.1.33.1.6.3.6 |
| upsAlarmOutputBad | 输出异常 | .1.3.6.1.2.1.33.1.6.3.7 |
| upsAlarmOutputOverload | 输出过载 | .1.3.6.1.2.1.33.1.6.3.8 |
| upsAlarmOnBypass | 旁路模式 | .1.3.6.1.2.1.33.1.6.3.9 |
| upsAlarmBypassBad | 旁路异常 | .1.3.6.1.2.1.33.1.6.3.10 |
| upsAlarmOutputOffAsRequested | 按要求的UPS输出关闭 | .1.3.6.1.2.1.33.1.6.3.11 |
| upsAlarmUpsOffAsRequested | 按要求的UPS系统关闭 | .1.3.6.1.2.1.33.1.6.3.12 |
| upsAlarmChargerFailed | 充电故障 | .1.3.6.1.2.1.33.1.6.3.13 |
| upsAlarmUpsOutputOff | UPS输出关闭 | .1.3.6.1.2.1.33.1.6.3.14 |
| upsAlarmUpsSystemOff | UPS系统关闭 | .1.3.6.1.2.1.33.1.6.3.15 |
| upsAlarmFanFailure | 风扇故障 | .1.3.6.1.2.1.33.1.6.3.16 |
| upsAlarmFuseFailure | 保险丝熔断或故障 | .1.3.6.1.2.1.33.1.6.3.17 |
| upsAlarmGeneralFault | UPS故障 | .1.3.6.1.2.1.33.1.6.3.18 |
| upsAlarmDiagnosticTestFailed | 测试诊断失败 | .1.3.6.1.2.1.33.1.6.3.19 |
| upsAlarmCommunicationsLost | 通讯失败 | .1.3.6.1.2.1.33.1.6.3.20 |
| upsAlarmAwaitingPower | 市电异常 | .1.3.6.1.2.1.33.1.6.3.21 |
| upsAlarmShutdownPending | 关机延迟 | .1.3.6.1.2.1.33.1.6.3.22 |
| upsAlarmShutdownImminent | 立即关机 | .1.3.6.1.2.1.33.1.6.3.23 |
| upsAlarmTestInProgress | 电池测试中 | .1.3.6.1.2.1.33.1.6.3.24 |
| emdTemperatureTooHigh | 温度过高 | .1.3.6.1.2.1.33.1.6.3.26 |
| emdTemperatureTooLow | 温度过低 | .1.3.6.1.2.1.33.1.6.3.27 |
| emdHumidityTooHigh | 湿度过高 | .1.3.6.1.2.1.33.1.6.3.28 |
| emdHumidityTooLow | 湿度过低 | .1.3.6.1.2.1.33.1.6.3.29 |
| emdAlarm1Active | 告警一使能 | .1.3.6.1.2.1.33.1.6.3.30 |
| emdAlarm2Active | 告警二使能 | .1.3.6.1.2.1.33.1.6.3.31 |
| 读故障不是读上面的每个OID,而是读右边两个 | upsAlarmDescr告警描述 | .1.3.6.1.2.1.33.1.6.2.1.2 |
| upsAlarmTime告警时间 | .1.3.6.1.2.1.33.1.6.2.1.3 |

浙公网安备 33010602011771号