0

我在返回字符串的代理上有一个用户参数。该字符串包含一个带有 E:x 的行,如果没有发现错误,则 x==0,如果发现错误,则 x>0。我想在触发器上检查这个数字,但找不到怎么做。或者,如果可能的话,我可以使用我的命令的退出状态。谢谢你。

4

2 回答 2

0

Zabbix 触发器在一个值上运行一个表达式。

如果您的键返回一个字符串,则必须使用正则表达式匹配来执行您所描述的操作:

{my-template:system.hostname.regexp(IMPORTANT-SERVER)}#1

如果主机名键返回的值与“IMPORTANT-SERVER”(区分大小写)不匹配,这将触发警报。

如果您的键返回无符号整数,则可以使用检查值的表达式。

{my-template:uptime.last(0)}<300

如果从键“uptime”返回的值小于 300,这将返回警报,在这种情况下,这意味着机器的正常运行时间少于 5 分钟并且可能已重新启动。这仅在值返回无符号整数时才有效。

我的建议是将您的支票更改为仅以数字(或退出代码)响应。将数据收集为无符号整数。设置一个触发器说如果数字不是0,然后发送一个触发器。

否则,您将不得不将正则表达式与字符串进行匹配。

于 2012-07-24T00:30:20.260 回答
0

试试这个方法:

{HP LaserJet P2055dn:display.str(Load Paper)}

它应该有效。

于 2016-09-02T11:41:03.033 回答