Zabbix 触发器滞后-未恢复正常

Zabbix 触发器滞后-未恢复正常

我采取以下措施来防止代理连接出现故障(必须保持 20 分钟稳定才能标记为正常)。

修正语法后Zabbix 触发器滞后 - 触发器表达式不正确我有以下内容:

({TRIGGER.VALUE}=0 and {Template App Zabbix Agent:agent.ping.nodata(5m)}=1) or ({TRIGGER.VALUE}=1 and {Template App Zabbix Agent:agent.ping.min(20m)}=1)

虽然它最初在没有数据时会触发,但它永远不会恢复。我目前正在使用 v3.0.9,因此暂时尝试使用上面的方法。

我检查了目标的最新代理数据,发现代理 ping 确实1持续了 20 多分钟。

请问我做错了什么吗?

答案1

我做过一些实验:

如果可以联系到,agent.ping 会写入“1”值,如果无法联系到,则不会写入任何内容;因此,即使您的代理 2 小时无法联系到,最后一个值也是 1。这意味着 .min()、.avg() 等... 始终在“1”值列表上工作。

.nodata() 函数对反弹也没有帮助:仅当它在整个时间间隔内没有收到任何数据时才返回“1”,否则返回“0”。

例如,60 秒项目上的 .nodata(20m) 将返回:

  • 1:如果整个 20 分钟时间范围内未收到数据(20 个空值)
  • 0:如果一切正常(20 个完整值)
  • 0:适用于介于两者之间的一切(即:5 分钟内可以联系,5 分钟内无法联系,10 分钟内可以联系)

我找到了解决方法,假设您每 60 秒检查一次代理可达性:

({TRIGGER.VALUE}=0 and {Template App Zabbix Agent:agent.ping.nodata(5m)}=1) or ({TRIGGER.VALUE}=1 and {Template App Zabbix Agent:agent.ping.count(20m,1)}<20)

该表达式将在 5 分钟不可达后触发,并且仅当您在过去 20 分钟内有 20 个“1”值时才会恢复。

虽然不是太优雅,但是还是有效。

相关内容