10分钟教会你使用Zabbix6.0新聚合算法
精选
原创
©著作权归作者所有:来自51CTO博客作者Zabbix中国的原创作品,请联系作者获取转载授权,否则将追究法律责任
感谢张宇投稿!张宇,Zabbix高级认证专家。
1、Zabbix 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]))
|
2、Zabbix 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 A“ and group=“Group B”]))
|
通过标签过滤汇聚不同主机的监控对象汇聚:
sum(last_foreach(/*/net.if.in[*]?[(group=“Servers A” or group=“Servers B”) and tag=“Service”]))
|
参考文档:
https://www.zabbix.com/documentation/6.0/zh/manual/config/items/itemtypes/calculated