目标
根据H3C网络设备 发送 SNMP trap 信息进行网络端口的告警。
具体过程
继上次配置的trap 方式进行监控一个案例。 其中log数据中的内容是:
20230330.163810 ZBXTRAP 192.168.21.148
UDP: [192.168.21.148]:52289->[172.18.18.2]:1162
DISMAN-EVENT-MIB::sysUpTimeInstance = 8909811
SNMPv2-MIB::snmpTrapOID.0 = SNMPv2-SMI::mib-2.192.0.1
SNMPv2-SMI::mib-2.192.1.2.1.2.4.164 = 23
SNMPv2-SMI::mib-2.192.1.2.1.3.4.164 = 6
SNMPv2-SMI::mib-2.192.1.2.1.4.4.164 = 1
SNMPv2-SMI::mib-2.192.1.2.1.5.4.164 = "07 E7 03 1E 10 19 0A 00 00 00 2D 00 00 [......
...-..]" =
SNMPv2-SMI::mib-2.192.1.2.1.6.4.164 = "H3C"
SNMPv2-SMI::mib-2.192.1.2.1.7.4.164 = "NQA"
SNMPv2-SMI::mib-2.192.1.2.1.8.4.164 = "-"
SNMPv2-SMI::mib-2.192.1.2.1.9.4.164 = "NQA_ENTRY_PROBE_RESULT"
SNMPv2-SMI::mib-2.192.1.2.1.10.4.164 = 1
SNMPv2-SMI::mib-2.192.1.2.1.11.4.164 = "Reaction entry 1 of NQA entry admin-name h3c operation-tag dianxin: probe-fail. "
SNMPv2-SMI::mib-2.192.1.3.1.4.4.164.4.1.12.83.121.115.76.111.99.64.50.53.53.48.54.4.83.108.111.116 = "0"
20230330.163827 ZBXTRAP 192.168.21.148
UDP: [192.168.21.148]:52289->[172.18.18.2]:1162
DISMAN-EVENT-MIB::sysUpTimeInstance = 8911513
SNMPv2-MIB::snmpTrapOID.0 = SNMPv2-SMI::mib-2.192.0.1
SNMPv2-SMI::mib-2.192.1.2.1.2.4.165 = 23
SNMPv2-SMI::mib-2.192.1.2.1.3.4.165 = 6
SNMPv2-SMI::mib-2.192.1.2.1.4.4.165 = 1
SNMPv2-SMI::mib-2.192.1.2.1.5.4.165 = "07 E7 03 1E 10 19 1B 00 00 00 2D 00 00 [..........-..]"
SNMPv2-SMI::mib-2.192.1.2.1.6.4.165 = "H3C"
SNMPv2-SMI::mib-2.192.1.2.1.7.4.165 = "NQA"
SNMPv2-SMI::mib-2.192.1.2.1.8.4.165 = "-"
SNMPv2-SMI::mib-2.192.1.2.1.9.4.165 = "NQA_ENTRY_PROBE_RESULT"
SNMPv2-SMI::mib-2.192.1.2.1.10.4.165 = 1
SNMPv2-SMI::mib-2.192.1.2.1.11.4.165 = "Reaction entry 1 of NQA entry admin-name h3c operation-tag dianxin: probe-pass. "
SNMPv2-SMI::mib-2.192.1.3.1.4.4.165.4.1.12.83.121.115.76.111.99.64.50.53.53.48.54.4.83.108.111.116 = "0"
从图中可以看到具体trap过来的log,我从中截取两端是本次监控内容的片段。其中第一次 20230330.163810 operation-tag dianxin: probe-fail.
,
第二次 20230330.163827 operation-tag dianxin: probe-pass.
operation-tag
需要在交换机对设备某一接口进行配置,唯一值表示设备的具体线路信息。 当设备出现 probe-fail
我们进行告警,出现probe-pass
告警恢复。
逻辑有了,下面进行模版的配置。
模版配置
创建了两个内容:
- 监控接口线路状态
- 监控
operation-tag
名称
监控项
- 接口线路状态
类型选择 SNMP trap, 我这里的时间格式和我之前配置的bash 文件是匹配的。
通过正则获取关键词。
获取到关键词后,对数据进行处理:
正则判断是否是fail 如果fail 值输出0,否则1。
- tag名称
获取tag目的主要是进行告警时候能分辨是谁,所以在这里进行获取。
正则获取operation-tag
内容
获取后进行内容处理:
配置触发器
判断两个规则:
A 判断是fail 还是pass, =0 fail 触发 (=1 pass 是恢复表达式)。
B 判断tag 内容是否是宏配置中的变量(如果多个可创建多个触发器进行配置)。
由于现在需求不存在自动关闭,所以没有其他规则来恢复这个告警。
如果需要自动关闭可配置一个nodata的条件在恢复表达式中。
模版宏
我们在触发器中使用了一个宏,在模版中也配置一下吧{$OPN_TAG}
。值默认空就好了。
配置宏
由于我们需要在设备层面配置{$DEV_NAME}
,{$OPN_TAG}
的内容,所以在创建一台HOST后,在HOST设备上进行配置。
比如我们上面那个设备中的{$OPN_TAG}
是 dianxin。{$DEV_NAME}
test-trap。
完结
祝好~