在 Zabbix 被動檢查中送出 NULL 值
最近我在 Zabbix 中配置了一些被動檢查。現在,我看到一些檢查在一段時間內失敗了,但是在查看圖表時並不清楚。上週該值似乎穩定,但實際表現下降,沒有人認識到它。
有沒有辦法向 Zabbix 發送 NULL 以指示獲取數據失敗?並為這種情況添加觸發器?我目前正在使用命令行工具
zabbix_sender
上傳結果,但可以更改為替代方法。相比之下,munin 在收到最後一個值 10 分鐘後停止繪圖,缺失值也不影響平均值的計算。
在這裡,您可以看到“缺失數據”的顯示方式:
在圖表中(我標記了“缺失數據”):
在“上次數據”表中(該行顯示為灰色,但“上次檢查”值幾乎顯示目前時間)
順便說一句:同樣的問題出現在
icmppingsec[]
檢查中,如果出現錯誤,它只返回 0。對繪圖不是很有幫助,但至少可以避免誤報。
事實上,這是可能的。但這可能會在未來的版本中改變,因為我認為這是 Zabbix 中的一個錯誤:
如果您將項目類型更改為“Zabbix agent (active)”(而不是“Zabbix trapper”),您可以設置“更新間隔(以秒為單位)”,這將按預期工作,即使使用 zabbix_sender 而不是代理.
原因:Zabbix agent 和 zabbix_sender 使用相同的協議(只有細微的區別,比如“request”欄位中的字元串“sender data”與“agent data” )。此外,Zabbix 似乎沒有檢查代理數據的來源,也沒有檢查協議字元串,因此 zabbix_sender 甚至可以在任何主機上執行以推送活動的 zabbix 代理結果 - 一段時間後(我測量了大約 2-3 次更新間隔),如果不再有數據,圖表線會按預期停止。
此解決方案的唯一缺點是:您不能再使用“允許的主機”選項。
您正在使用的事實
zabbix_sender
意味著這些項目屬於“Zabbix trapper”類型。使用陷阱項目,您上面描述的圖形行為是預期的。像“Zabbix agent”和“Zabbix agent (active)”這樣的正常類型項目配置了更新間隔,所以前端知道數據預計會出現,比如每30秒。如果在大約 4 個更新間隔的時間段內沒有數據,則繪圖工具不會在此時間段內繪製線。因此,在您的情況下,如果項目屬於任何其他類型,則不會繪製標記線。
但是,對於 Trapper 項目,沒有更新間隔,因此前端不知道數據預計多久會出現一次。它可能每分鐘、每天或不定期出現。所以目前的解決方案是將圖中的每兩個點連接起來,並將第一個和最後一個值延伸到圖的邊界。