用Calcuated Items可以对Items进行汇总计算,如求磁盘总容量、网络流量,只依赖于Zabbix-Server,与Zabbix-Agent和proxy无关。Calcuated Items也可用于Trigger,配置与Items相同。
语法格式为:func(<key>|<hostname:key>,<parameter1>,<parameter2>,……)
语法参数说明
func
参数 | 描述 |
---|---|
func | 支持Trigger正则表达式的函数:last、min、max、avg、count等 |
key | key可以比其他Items引用,可以被定义为key或者hostnamekey。 |
parameter(s) | 所需要的参数 |
单个分区剩余容量key为:
last("vfs.fs.size[C:,free]",0)
last("vfs.fs.size[D:,free]",0)
last("vfs.fs.size[E:,free]",0)
last("vfs.fs.size[F:,free]",0)
则添加计算CDEF磁盘总剩余容量的Items为:
last("vfs.fs.size[C:,free]",0)+last("vfs.fs.size[D:,free]",0)+last("vfs.fs.size[E:,free]",0)+last("vfs.fs.size[F:,free]",0)
计算网卡eth0、eth1、eth2三个网卡的进即in流量。
last("net.if.in[eth0]",0)+last("net.if.in[eth1",0)+last("net.if.in[eth2]",0)
聚合检测是从数据库中已经获取到的参数进行检测,不需要从任何Agent获取监控数据。
语法格式为:groupfunc["host group","item key",itemfunc,timeperiod]
语法参数说明:
groupfunc组的函数 | 描述 |
---|---|
grpavg | 平均值 |
grpmax | 最大值 |
grpmin | 最小值 |
grpsum | 值的个数 |
itemfunc函数 | 功能描述 |
---|---|
avg | 平均值 |
count | 值的个数 |
last | 最新的值 |
max | 最大值 |
min | 最小值 |
sum | 求和 |
temeperiod参数为数值单位,如5min,1d或者86400等价,不带参数即默认为秒。
grpsum["MySQL Servers","vfs.fs.size[/,total]",last,0]
#对MySQL Servers组中的vfs.fs.size[/,total]key计算个数,值的时间为最后一次取值数据。
grpavg["MySQL Servers","system.cpu.load[,avg1]",last,0]
#对MySQL Servers组中的system.cpu.load[,avg1]求平均值,值的时间为最后一次取值数据。
grpavg["MySQL Servers",mysql.gps,avg,5m]
#对MySQL Servers组中的mysql.gps的平均值计算总体的平均值,值的时间为最后5分钟取值数据。
注意:聚合计算基于Templates/Host之上,即需要将聚合计算的Items建立在Host中。可单独建立一个主机用于存放聚合计算的数据。
创建一个新Host Group组。
在新建的主机中添加Items。
查看验证
延伸:1 若要添加多个主机组语法为:grpsum[["Host group1","Host group2"],"vfs.fs.size[/,free]",last,0]
2 对多个主机某项进行数据汇总,可先在各主机中用Zabbix计算的方式对各个项进行求和,形成新的Items,之后对此Items进行聚合求和。