# 12 Агрегированные проверки

#### Обзор

В агрегированных проверках Zabbix сервер собирает совокупную информацию
из элементов данных, выполняя прямые запросы в базу данных.

Агрегированные проверки не требуют на наблюдаемом узле сети наличия
какого-либо агента.

#### Синтаксис

Синтаксис ключа агрегированного элемента данных:

    функция_группировки["группа узлов сети","ключ элемента данных",функция_элемента_данных,период_времени]

Поддерживаемые функции группировки (функция\_группировки):

|Функций группировки|Описание|
|-------------------------------------|----------------|
|*grpavg*|Среднее значение|
|*grpmax*|Максимальное значение|
|*grpmin*|Минимальное значение|
|*grpsum*|Сумма значений|

Можно включить несколько групп узлов сети, добавив массив с элементами
разделенными запятыми. Если указать родительскую группу узлов сети,
будет включена родительская группа и все вложенные группы узлов сети
вместе с их элементами данных.

Все элементы данных, на которые имеется ссылка из ключа агрегированного
элемента данных, должны существовать и собирать данные. В вычисления
добавляются только активированные элементы данных у активированных узлов
сети.

::: noteimportant
Ключ агрегированного элемента данных необходимо
обновлять вручную, если будет изменен ключ элемента данных на который
агрегированный элемент данных ссылается.
:::

Поддерживаемые функции элементов данных (функция\_элемента\_данных):

|Функция элемента данных|Описание|
|--------------------------------------------|----------------|
|*avg*|Среднее значение|
|*count*|Количество значений|
|*last*|Последнее значение|
|*max*|Максимальное значение|
|*min*|Минимальное значение|
|*sum*|Сумма значений|

Параметр **период\_времени** задает период времени последних собранных
значений. Для удобства вы можете использовать [поддерживаемые символы
единиц измерения](ru/manual/appendix/suffixes), например '5m' (минут)
вместо '300' (секунд) или '1d' (день) вместо '86400' (секунд).

::: notewarning
Количество значений (с префиксом **\#**) не
поддерживается.
:::

Параметр **период\_времени** игнорируется сервером в случае, если третий
параметр (функция элемента данных) - *last* и его можно не указывать:

    groupfunc["Группа узлов сети","Ключ элемента данных",last]

::: noteclassic
Если результатом агрегации будет число с плавающей точкой,
оно будет обрезано до целого числа, в случае если типом информации
агрегированного элемента данных указан *Числовой (целое
положительное)*.
:::

Агрегированный элемент данных может стать неподдерживамым, если:

-   не найдено ни одного элемента данных, на которые он ссылается (что
    может произойти, если ключ элемента данных некорректный, элементы
    данных не существуют или все добавленные группы некорректны)
-   отсутствуют данные для вычисления функции

#### Примеры использования

Примеры ключей агрегированных проверок:

##### Пример 1

Суммарный размер дисков в группе узлов сети 'MySQL Servers'.

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

##### Пример 2

Средняя загрузка процессора в группе узлов сети 'MySQL Servers'.

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

##### Пример 3

5-минутное усреднение количества запросов в секунду для группы узлов
сети 'MySQL Servers'.

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

##### Пример 4

Средняя загрузка CPU на всех узлах сети в нескольких группах узлов сети.

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