Zabbix

Zabbix Trigger Hysteresis - 未恢復正常

  • May 27, 2017

我有以下措施來防止代理連接抖動(在標記為 OK 之前,它必須穩定 20 分鐘)。

在更正Zabbix Trigger Hysteresis - Incorrect trigger expression的語法後,我有以下內容:

({TRIGGER.VALUE}=0 and {Template App Zabbix Agent:agent.ping.nodata(5m)}=1) or ({TRIGGER.VALUE}=1 and {Template App Zabbix Agent:agent.ping.min(20m)}=1)

雖然它最初在沒有數據時觸發,但它永遠不會恢復。我目前正在使用 v3.0.9,所以現在嘗試使用上述內容。

我在targets下查看了最新的agent數據,可以看到agent ping確實是120多分鐘。

請問我做錯了什麼?

我做了一些實驗:

agent.ping 如果可達則寫入“1”值,如果不可達則不寫入任何內容;因此,即使您的代理在 2 小時內無法訪問,最後一個值為 1。這意味著 .min()、.avg() 等…始終適用於“1”值列表。

.nodata() 函式也對反彈沒有幫助:僅當它在整個時間間隔內沒有收到任何數據時才返回“1”,否則返回“0”。

例如, 60 秒項目上的 .nodata(20m) 將返回:

  • 1:如果在整個 20m 時間範圍內沒有收到數據(20 個空值)
  • 0:如果一切正常(20 個完整值)
  • 0:對於介於兩者之間的所有內容(即:5 好,5 分鐘未達到,10 好)

我找到了解決方法,假設您每 60 秒檢查一次代理可達性:

({TRIGGER.VALUE}=0 and {Template App Zabbix Agent:agent.ping.nodata(5m)}=1) or ({TRIGGER.VALUE}=1 and {Template App Zabbix Agent:agent.ping.count(20m,1)}<20)

該表達式將在 5 分鐘不可達後觸發,並且僅當您在過去 20 分鐘內有 20 個“1”值時才會恢復。

不太優雅,但它的工作原理。

引用自:https://serverfault.com/questions/852507