2016-08-12 40 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