1

我需要能够检测轮询的 Zabbix 代理项不返回数据的触发器。对于 zabbix 陷阱项目,此功能由 nodata() 函数(Zabbix 文档中的心跳丢失检测)涵盖,但我需要 Zabbix 代理项目支持类似的功能。

例如,一个已经定义了 Zabbix 代理的 UserParameter: UserParameter=custom.mssqlping,/usr/local/scripts/mssqlping.sh

脚本 mssqlping.sh 返回 0/1。我需要覆盖 mssqlping.sh 脚本被破坏并返回 empy 字符串的情况,该字符串未存储在 zabbix 中,因为它不是数字。

如何检测定期轮询的项目数据不再出现?

4

2 回答 2

5

造成问题的不是它没有存储,而是它不再被视为有效项目,因此您无法从中触发任何东西。有很多与之相关的错误报告。AFAIk 你的选择:

  1. 调整脚本以在出现错误时返回数值
  2. 使用2.2 的“内部事件”来检测“变得不受支持”事件
  3. 制作和外部脚本,将直接查询数据库并自行通知您或通过 zabbix 的陷阱触发条件
于 2014-01-18T08:49:24.753 回答
1

或者这里的选项是基于nodata()触发

来自:https ://www.zabbix.com/forum/zabbix-help/41652-zabbix-trigger-timeout?p=245422#post245422

{myserver:example.iregexp("/string/",1m)}=1 AND {myserver:example.nodata(1m)}=0

更多阅读:https ://zabbix.org/wiki/Trigger_examples

于 2019-02-18T14:48:04.863 回答