Агрегированные вычисления — это тип вычисляемых элементов данных, который позволяет собирать информацию с нескольких элементов данных Zabbix сервером, и затем вычислять совокупность, в зависимости от использованной функции агрегирования.
Для элементов данных агрегированного вычисления поддерживаются только целочисленные значения и значения с плавающей точкой (тип информации).
Агрегированные вычисления не требуют наличия какого-либо агента, запущенного на наблюдаемом узле сети.
Для получения агрегирования вы можете:
функция_агрегации(функция(/узел_сети/ключ,параметр),функция(/узел_сети2/ключ2,параметр),...)
Обратите внимание, что здесь функция
должна быть функцией истории или динамики изменений.
функция_агрегации(функция_foreach(/узел_сети/ключ?[group="узел сети"],период_времени))
Функция агрегации — одна из поддерживаемых функций агрегации: avg, max, min, sum и т.д.
Функция foreach (такая как avg_foreach, count_foreach и т.п.) возвращает одно совокупное значение по каждому выбранному элементу данных. Элементы данных выбираются с использованием фильтра элементов данных (/узел_сети/ключ?[group="группа узлов сети"]
), из истории элементов данных.
Если некоторые элементы данных не имеют данных за требуемый период, они при вычислении игнорируются. Если никакие элементы данных не имеют данных, то функция вернет ошибку.
Для получения более подробных сведений смотрите функции foreach.
Если в результате агрегации получится значение числа с плавающей точкой, оно будет обрезаться до целого числа, если типом информации вычисляемого элемента данных выбрано Числовой (целое положительное).
Пользовательские макросы и макросы низкоуровневого обнаружения поддерживаются в:
Агрегированное вычисление может перейти в неподдерживаемое состояние в нескольких случаях:
Примеры ключей для агрегированных вычислений.
Общий размер дискового пространства в группе узлов сети «MySQL Servers».
Сумма последних значений на узле сети всех элементов данных, совпадающих с net.if.in[*].
Средняя загрузка процессора в группе узлов сети «MySQL Servers».
Усреднение за 5 минут количества запросов в секунду по группе узлов сети «MySQL Servers».
Средняя загрузка CPU по всем узлам сети в нескольких группах узлов сети, у которых имеются заданные теги.
avg(last_foreach(/*/system.cpu.load?[(group="Servers A" or group="Servers B" or group="Servers C") and (tag="Service:" or tag="Importance:High")]))
Вычисление с использованием суммы последних значений элементов данных по всей группе узлов сети.
sum(last_foreach(/*/net.if.out[eth0,bytes]?[group="video"])) / sum(last_foreach(/*/nginx_stat.sh[active]?[group="video"]))
Общее количество неподдерживаемых элементов данных в группе узлов сети «Zabbix servers».
Выражения (включая вызовы функций) нельзя использовать в качестве параметров к функциям истории, динамики изменений или foreach. Однако, сами эти функции могут быть использованы в параметрах других (не относящихся к истории) функций.
Выражение | Пример |
---|---|
Допустимое | avg(last(/host/key1),last(/host/key2)*10,last(/host/key1)*100) max(avg(avg_foreach(/*/system.cpu.load?[group="Servers A"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers B"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers C"],5m))) |
Недопустимое | sum(/host/key,10+2) sum(/host/key, avg(10,2)) sum(/host/key,last(/host/key2)) |
Обратите внимание, что в таком выражении, как:
нельзя гарантировать, что обе части всегда будут иметь одинаковый набор значений. Пока вычисляется одна часть выражения, может прийти новое значение за запрашиваемый период, и тогда вторая часть выражения будет иметь отличающийся набор значений.