问题原因
sysUpTime 是由一个32-bit的counter来计数的,单位是1/100秒,所以最大时间为497.1天,过了497.1天就溢出,变成0,然后又重新计算时间,所以zabbix误报。
解决方法
谷歌搜索得知,snmpEngineId (1.3.6.1.6.3.10.2.1.3.0) 值存储的是秒,可以存储100多年,大部分解决方案都采用这种方案。
但是根据实际测试,我在Nexus 5000 系交换机上,sysUpTime时间重置后,snmpEngineId 的时间也同样重置了,只能查找其他方案。
最终方案
修改了触发器条件为
{hostname_xxx:sysUpTime.change()}<0 and {hostname_xxx:sysUpTime.prev()}<42949036