接下来做一下自动发现规则的配置。
像是设备的接口信息之类的收集,因为不同型号设备的接口数量不同,固定的OID值不能适配所有的设备,就需要使用自动发现规则来自动发现不同设备上的不同接口。
- 点击模板所在行的“自动发现”,然后创建规则,
名称: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宏名称,然后 oid1, oid2... 是可以为这些宏生成具体值的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的接口。
- 创建监控项原型
点击自动发现规则所在行的监控项原型,配置监控项
名称:interface {#IFNAME} 状态
类型:SNMP代理
键值:hillstone.interface.status[{#IFNAME}]
信息类型:文本
SNMP OID:.1.3.6.1.2.1.2.2.1.8.{#IFINDEX}
更新间隔:30s
在监控项中,可以使用自动发现规则中自定义的宏
- 配置触发器原型
点击自动发现规则所在行的触发器原型,配置触发器
名称: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()函数,表示获取最新值。括号内跟监控项中自定义的键值。
综上,即为本教程的全部,讲述了监控项、触发器、自动发现规则的使用,可以覆盖大多数的常用场景。如果后续有新的配置心得,再继续分享吧。