zabbix 在触发器上搜索字符串

问题描述 投票:0回答:2

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

zabbix
2个回答
0
投票

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

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

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

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

如果您的密钥返回一个无符号整数,您可以使用检查值的表达式。

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

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

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

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


0
投票

试试这个方法:

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

它应该有效。

© www.soinside.com 2019 - 2024. All rights reserved.