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源创计划”,欢迎正在阅读的你也加入,一起分享。

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