10分鐘教會你使用Zabbix6.0新聚合算法

感謝張宇投稿!張宇,Zabbix高級認證專家。

先賺它幾千元再說!Zabbix有獎投稿

1Zabbix 6.0普通計算

計算監控項是創建虛擬數據源的一種方式。所有計算僅由 Zabbix server (目前6.0還是,rodmap中有考慮計算放到proxy上)完成。這些值是根據所使用的算術表達式定期計算的。

結果數據與任何其它監控項一樣存儲在 Zabbix 數據庫中;歷史和趨勢值都被存儲並且可以生成圖形。

它的公式爲簡單計算項公式的語法:(這類功能6.0以前也有,表達式寫法不同)

function(/host/key,<parameter1>,<parameter2>,...)

如果計算監控項是當前主機,語法爲:

function(//key,<parameter1>,<parameter2>,...)

 


計算監控項特性:

注意:在Zabbix 6.0中一個新的SERVER conf參數。(StartHistoryPollers 此進程實際處理計算和聚合算法數據的)

 多個運算公式寫法:

將網口進出口流量合併:

last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes])

計算出進口流量佔用總流量百分比:

100*last(//net.if.in[eth0,bytes])/(last(//net.if.in[eth0,bytes])+last(//net.if.out[eth0,bytes]))

2Zabbix 6.0新聚合算法

什麼是聚合計算函數:

 

計算函數+foreach函數:

Foreach函數從多個項目的歷史記錄返回聚合值:

 

foreach_function(/host pattern/item pattern?[host group or tag filter])

以下foreach支持的函數:

常見使用方式舉例:

主機組“MySQL Servers”的/磁盤總空間:

sum(last_foreach(/*/vfs.fs.size[/,total]?[group=MySQL Servers]))

數據流程如下:


單個設備所有網卡出口流量匯聚:

sum(last_foreach(//net.if.out[*]))

 


查詢多個LLD對象數量匯聚:(比如說同實例MySQL庫發現數量)

sum(exists_foreach(//mysql.dbsize[*,*,*]))

 


多個主機組磁盤總量監控項匯聚:

sum(last_foreach(/*/vfs.fs.size[/,total]?[group=Group Aand group=Group B]))

 


通過標籤過濾匯聚不同主機的監控對象匯聚:

sum(last_foreach(/*/net.if.in[*]?[(group=Servers Aor group=Servers B) and tag=Service])

 

 參考文檔:

https://www.zabbix.com/documentation/6.0/zh/manual/config/items/itemtypes/calculated

延伸閱讀

10分鐘教會你使用Zabbix API出報表(附代碼)

Zabbix面試題,附詳細答案!

Zabbix6.0升級指南-數據庫如何同步升級?

本文分享自微信公衆號 - Zabbix開源社區(china_zabbix)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章