2022 Zabbix中国峰会
2022 Zabbix中国峰会

12 聚合检查

概述

在聚合检查中,Zabbix通过直接从数据库中查询监控信息,然后进行信息聚合。

聚合检查不需要在被监控主机上运行任何代理。

语法

聚合监控项键值的语法是:

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

支持的组函数:

组函数 描述
grpavg 平均值
grpmax 最大值
grpmin 最小值
grpsum 值的总和

可以通过插入以逗号分隔的数组来包含多个主机组。指定父主机组将包括父组和所有包含监控项的嵌套主机组。

从聚合监控项键值引用的所有监控项必须存在并且正在收集数据。只有主机和监控项都被启用才能进行聚合计算。

<note important如果引用监控项的键值被更改,则必须手动更新聚合监控项的键值. :::

支持的监控项函数:

监控项函数 描述
avg 平均值
count 数值
last 最后一次的值
max 最大值
min 最小值
sum 值的总和

timeperiod 参数指定最近收集的值的时间周期。为方便起见,可以在此参数中使用 支持的单位符号。例如,使用'5m' (分钟)来代替'300' (秒),或者是用'1d' (天) 来代替 '86400' (秒)。

在该段时间内,不支持多个数值(前缀为 # ).

如果第三个参数(监控项函数)是 last ,服务器将忽略Timeperiod,因此可以省略:

groupfunc["host group","item key",last]

如果聚合产生的是一个浮点数,同时聚合的监控项信息类型为 Numeric (unsigned) ,则该值将会被修剪为整数。

如果出现以下情况,聚合监控项可能会变成不支持状态:

  • 没有找到引用的监控项 (监控项键值不正确、监控项不存在或是所有包含的组都不正确时,可能会发生此情况)
  • 没有数据用来计算一个函数

用法示例

用户聚合检查的键值示例:

示例 1

'MySQL Servers'主机组的磁盘总空间

grpsum["MySQL Servers","vfs.fs.size[/,total]",last]
示例 2

'MySQL Servers'主机组处理器的平均负载

grpavg["MySQL Servers","system.cpu.load[,avg1]",last]
示例 3

'MySQL Servers'主机组5分钟内平均每秒查询数量

grpavg["MySQL Servers",mysql.qps,avg,5m]
示例 4

多个主机组中所有主机CPU负载的平均值

grpavg[["Servers A","Servers B","Servers C"],system.cpu.load,last]