制作Hillstone可用的Zabbix SNMP监控模板之三:配置自动发现规则

发布于 2024-04-29  95 次阅读


接下来做一下自动发现规则的配置。

像是设备的接口信息之类的收集,因为不同型号设备的接口数量不同,固定的OID值不能适配所有的设备,就需要使用自动发现规则来自动发现不同设备上的不同接口。

  1. 点击模板所在行的“自动发现”,然后创建规则,

名称:Get System Interface

类型:SNMP代理

键值:system.interface

SNMP OID:discovery[{#IFINDEX},.1.3.6.1.4.1.28557.2.6.1.3.1.1,{#IFNAME},.1.3.6.1.4.1.28557.2.6.1.3.1.2,{#IFSTATUS},.1.3.6.1.2.1.2.2.1.8]

更新间隔:1m

SNMP OID格式如下: discovery[{#MACRO1}, oid1, {#MACRO2}, oid2, …,],其中 {#MACRO1}{#MACRO2} … 是自定义的有效的LLD宏名称,然后 oid1oid2... 是可以为这些宏生成具体值的OID。LLD宏可以在后续的监控项以及触发器中使用。

对防火墙执行snmpwalk操作,

即在本次中{#IFINDEX}代表着29、30、31,{#IFNAME}代表着vswitchif1、ethernet0/0、tunnel1,{#IFSTATUS}代表着2、1、1(2表示接口为down,1表示接口为up)。

因为我们只需要状态为up的物理接口,所以需要配置过滤器,筛选出需要的接口。

计算方式:和(同时满足)

过滤器A:{#IFNAME} 不匹配 ^tunnel,即接口名称不以tunnel为开头

过滤器B:{#IFSTATUS} 匹配 1,即接口状态为1

A与B同时满足,即可筛选出接口名称不为tunnel,接口状态为up的接口。

  1. 创建监控项原型

点击自动发现规则所在行的监控项原型,配置监控项

名称:interface {#IFNAME} 状态

类型:SNMP代理

键值:hillstone.interface.status[{#IFNAME}]

信息类型:文本

SNMP OID:.1.3.6.1.2.1.2.2.1.8.{#IFINDEX}

更新间隔:30s

在监控项中,可以使用自动发现规则中自定义的宏

  1. 配置触发器原型

点击自动发现规则所在行的触发器原型,配置触发器

名称:interface {#IFNAME} change to {ITEM.VALUE} !

表达式:last(/Hillstone StoneOS 5.5/hillstone.interface.status[{#IFNAME}])="down"

在名称中,使用了两个宏,一个是 {#IFNAME},自定义的宏,另一个是{ITEM.VALUE},系统内置的宏,该宏可以与数字索引一起使用,例如 {ITEM.VALUE<1-9>} 指向触发器表达式中的第一个、第二个、第三个等监控项。在该项中 {ITEM.VALUE} 就表示 hillstone.interface.status[{#IFNAME} 的值。

更多的宏,请参考官方文档 https://www.zabbix.com/documentation/6.0/zh/manual/appendix/macros/supported_by_location

表达式中使用了last()函数,表示获取最新值。括号内跟监控项中自定义的键值。

综上,即为本教程的全部,讲述了监控项、触发器、自动发现规则的使用,可以覆盖大多数的常用场景。如果后续有新的配置心得,再继续分享吧。