【发布时间】:2012-06-05 14:58:48
【问题描述】:
我在代理上有一个返回字符串的用户参数。该字符串包含一个带有 E:x 的行,如果没有发现错误,则 x==0,如果发现错误,则 x>0。我想在触发器上检查这个数字,但找不到怎么做。或者,如果可能的话,我可以使用我的命令的退出状态。谢谢。
【问题讨论】:
标签: zabbix
我在代理上有一个返回字符串的用户参数。该字符串包含一个带有 E:x 的行,如果没有发现错误,则 x==0,如果发现错误,则 x>0。我想在触发器上检查这个数字,但找不到怎么做。或者,如果可能的话,我可以使用我的命令的退出状态。谢谢。
【问题讨论】:
标签: zabbix
Zabbix 触发器在一个值上运行一个表达式。
如果您的键返回一个字符串,则您必须使用正则表达式匹配来执行您所描述的操作:
{my-template:system.hostname.regexp(IMPORTANT-SERVER)}#1
如果主机名键返回的值与“IMPORTANT-SERVER”不匹配(区分大小写),这将触发警报。
如果您的键返回一个无符号整数,您可以使用检查值的表达式。
{my-template:uptime.last(0)}<300
如果从键“uptime”返回的值小于 300,这将返回警报,在这种情况下,这意味着机器的正常运行时间少于 5 分钟并且可能已重新启动。这仅在值返回无符号整数时才有效。
我的建议是将您的支票更改为只回复一个数字(或退出代码)。将数据收集为无符号整数。设置一个触发器,如果数字不是0,则发送触发器。
否则,您将不得不将正则表达式与字符串进行匹配。
【讨论】:
试试这个方法:
{HP LaserJet P2055dn:display.str(Load Paper)}
它应该可以工作。
【讨论】: