[comment]: # ({2799fdcb-b41635a8})
# 12 聚合检查

[comment]: # ({/2799fdcb-b41635a8})

[comment]: # ({55e9205c-7d86de47})
#### 概述

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

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

[comment]: # ({/55e9205c-7d86de47})

[comment]: # ({bb9290f5-1642077e})
#### 语法

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

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

支持的组函数：

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

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

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

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

支持的监控项函数：

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

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

::: notewarning
在该段时间内，不支持多个数值（前缀为 **\#**
）.
:::

如果第三个参数（监控项函数）是 *last*
，服务器将忽略Timeperiod，因此可以省略：

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

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

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

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

[comment]: # ({/bb9290f5-1642077e})

[comment]: # ({9d1f4270-a22bee19})
#### 用法示例

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

[comment]: # ({/9d1f4270-a22bee19})

[comment]: # ({790a33e5-cddf98e9})
##### 示例 1

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

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

[comment]: # ({/790a33e5-cddf98e9})

[comment]: # ({955f8615-b518f8b1})
##### 示例 2

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

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

[comment]: # ({/955f8615-b518f8b1})

[comment]: # ({5cfdd436-3d33350c})
##### 示例 3

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

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

[comment]: # ({/5cfdd436-3d33350c})

[comment]: # ({3a4d31cb-8109f38a})
##### 示例 4

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

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

[comment]: # ({/3a4d31cb-8109f38a})
