zabbix-多个大于0的项上的触发器

zabbix-多个大于0的项上的触发器,zabbix,Zabbix,我有多个返回整数的陷阱项,如下所示 app.tidal.Health.HighPriority.MessagesInQueue app.tidal.Health.CommDefault.MessagesInQueue app.tidal.Health.Default.MessagesInQueue 我想创建一个触发器,如果其中两个或多个在最近3次检查中返回的值大于0,以发送严重性高的消息 我正在努力设计我的触发器这就是我目前拥有的: {Template_App_Tidal_Masters:ap

我有多个返回整数的陷阱项,如下所示

app.tidal.Health.HighPriority.MessagesInQueue
app.tidal.Health.CommDefault.MessagesInQueue
app.tidal.Health.Default.MessagesInQueue
我想创建一个触发器,如果其中两个或多个在最近3次检查中返回的值大于0,以发送严重性高的消息

我正在努力设计我的触发器这就是我目前拥有的:

{Template_App_Tidal_Masters:app.tidal.Health.CommDefault.MessagesInQueue.min(#3)}>0 and
{Template_App_Tidal_Masters:app.tidal.Health.Default.MessagesInQueue.min(#3)}>0 and
{Template_App_Tidal_Masters:app.tidal.Health.HighPriority.MessagesInQueue.min(#3)}>0
但很明显,它不起作用,因为它是and语句,所以在最后3次检查中,所有3次检查都必须大于0。将触发器格式化为3行以使其更清晰。

这应该可以:

({Template_App_Tidal_Masters:app.tidal.Health.CommDefault.MessagesInQueue.min(#3)}>0) +
({Template_App_Tidal_Masters:app.tidal.Health.Default.MessagesInQueue.min(#3)}>0) +
({Template_App_Tidal_Masters:app.tidal.Health.HighPriority.MessagesInQueue.min(#3)}>0) > 1

每个零件首先计算大于0的单个项目。如果为true,则表达式的该部分计算结果为1,如果为false,则计算结果为0。最后,我们总结了这些评估的结果(不是原始项目值)检查是否有两个或多个项目的值大于零。

是的,问题是任何项目都可能大于1,因此如果其中一个项目的值为3,但另一个项目的值为0,则会触发,但我需要一个触发器,如果其中任何两个项目的值大于0,是否有办法保持项目值(即644),但是否将其表示为1?那么你的解决方案就行了。不,我提供的表达式应该只有在任意两个都大于0时才会触发(除非我搞砸了)。将扩展答案以进一步解释它。