2016-08-12 33 views
-1

我有多个项目是陷阱,返回一个整数,如下所示。zabbix - 触发多个项目大于0

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 

但很明显,因为它是一个将无法正常工作,并声明,因此所有3必须是更大最后3次检查的结果为0。格式化3行触发器使其更清晰。

回答

1

这应该工作:

({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。如果这是真的,则表达式的一部分的计算结果为1,如果假 - 为0。在最后我们总结这些评估的结果(不是原始项目值)并检查两个或更多项目是否具有大于零的值。

+0

是的问题是任何项可以大于1,所以如果一个是3的值,但其他2 0它会触发,但我想要一个触发器,如果​​它们中的任何两个大于0 – whoisearth

+0

扩展此有没有办法保持项目的价值(即644),但它表示为1?那么你的解决方案工作 – whoisearth

+0

不,我提供的表达式应该只在任何两个> 0时触发(除非我搞砸了)。将扩大答案来解释它更多。 – Richlv