我正在使用zabbix 3.4.10。我创建并配置了一个外部检查,该检查基本上将解析XML文件并返回错误(如果有)。在显示侧,有一个仪表板的纯文本窗口小部件,用于显示外部检查项目的输出。小部件将每10秒刷新一次数据。我的问题是:有没有办法告诉Zabbix没有新内容?我的窗口小部件每10秒钟不断显示最后一个错误,如果我尝试返回一些空字符串,则窗口小部件将显示它。如果我尝试返回不同的退出代码0,它仍然显示空字符串。有没有办法告诉zabbix“没有价值”?
答案 0 :(得分:0)
这是我的问题的答案。经过彻底的搜索和测试后,我想分享一个解决方案。因此,基本上,这里是您告诉Zabbix外部脚本“没有价值”的方式。基本需求是避免在外部脚本输出未提供任何更改的情况下避免Zabbix在仪表板上重复数据或显示空数据。
简而言之,您必须使外部脚本不受支持,然后Zabbix将尝试根据超时定期刷新每个不受支持的项目。要使脚本不受支持,只需将其“等待”,直到达到配置的Zabbix超时。以下是有关Zabbix超时的详细信息:
在zabbix_server.conf(位于/ etc / zabbix中)中,您必须取消注释Timeout参数。此参数表示超时,之后Zabbix认为当前正在执行的脚本不受支持。默认值为3秒,因此您可以设置所需的秒数。如果脚本不受支持,则Zabbix将不会使用该脚本来更新仪表板。
然后,您可以设置Zabbix在特定时间间隔后刷新不支持的脚本,以便它可以检查是否有更多数据可用。为此,您可以去那里:
Zabbix =>管理=>其他(在下拉列表中)=>刷新不支持的项目。
此间隔以秒为单位。就我而言,我已经放了10秒。这样Zabbix每10秒就会通过外部脚本重新检查一次。
如果有新数据可用,该脚本将不等待超时,因此它将不受支持。它将向Zabbix提供新数据,这些新数据将显示在仪表板中。在下一个脚本执行时,如果没有新数据,该脚本将等待直到超时,这会导致Zabbix不支持该脚本并且不更新仪表板。然后,Zabbix将按照上述配置刷新不支持的项目。