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

12 汇总检查

概述

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

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

语法

聚合监控项Key的语法是:

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

支持的组功能(groupfunc)是:

组功能 描述
grpavg 平均值
grpmax 最大值
grpmin 最小值
grpsum 值求和

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

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

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

支持的监控项的功能(itemfunc)是:

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

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

<note warning>在该时间段内不支持数值(count,前缀为#)。 :::

如果第三个参数(监控项功能)为last,服务器将忽略时间段,因此可以省略:

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

如果聚合产生了浮点值,同时如果聚合的监控项信息类型为Numeric(无符号),则将其修剪为整数。

如果出现以下情况有可能不支持汇总监控项:

  • 没有找到引用的监控项(如果监控项Key不正确,则不存在任何监控项或所有包含的组都不正确)
  • 没有数据用来计算一个函数

用法示例

用于聚合检查的Key示例:

示例 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]