一、概述

aggregate checks 是一个聚合的检测,例如我想知道某个组的 host 负载平均值,硬盘剩余总量,或者某几台机器的这些数据,简单的说,这个方法就是用来了解一个整体水平,而不需要我们一台台看过去。这个方法的数据全部来之数据库,所以它不需要 agent。

二、语法

聚合监控项Key的语法是:

1groupfunc["host group","item key",itemfunc,timeperiod]

groupfunc和itemfunc的函数如下:

item-group-func
item-group-func

参数 timeperiod 为指定的采集时间,可以使用时间单位,例如可以使用 1d 代替 86400(单位默认为秒),5m 代替 300。

备注:

  •  如果第三个参数为 last,那么 timeperiod 参数值将会被 server 忽略掉
  •  只有被监控的 HOST 上启用的 item 才会被计入 aggregate check

另外需要注意,聚合项使用的数据类型要和原item数据类型保持一致。

三、使用示例

1// 组 MySQL Servers 剩余硬盘空间大小
2grpsum["MySQL Servers","vfs.fs.size[/,total]",last,0]
3// 组 MySQL Servers 的平均 CPU 负载
4grpavg["MySQL Servers","system.cpu.load[,avg1]",last,0]
5// 组 MySQL Servers 5 分钟内的平均查询速度(次/秒)
6grpavg["MySQL Servers",mysql.qps,avg,5m]
7// 多个组的 cpu 负载平均值
8grpavg[["Servers A","Servers B","Servers C"],system.cpu.load,last,0]

四、创建主机和监控项

1、创建主机

填写主机名称、可见的名称、相应的群组,agent代理程序的接口默认就可以,主机agent IP地址使用127.0.0.1即可。

2、创建监控项

监控项类型选择为aggregate,键值可以参考上面的图表进行填写,具体如下:

aggregate
aggregate

这里使用的时候需要注意,上面使用的引号是英文状态下的,这个不要搞错了。

3、图形

出图可以选择使用monitroring—-latest data下的graph查看图示,也可以再创建一个graph item查看图形。

参看页面:https://www.zabbix.com/documentation/3.4/zh/manual/config/items/itemtypes/aggregate