Zabbix
Zabbix Trigger Hysteresis - 未恢復正常
我有以下措施來防止代理連接抖動(在標記為 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確實是
1
20多分鐘。請問我做錯了什麼?
我做了一些實驗:
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”值時才會恢復。
不太優雅,但它的工作原理。