Данные, которые поступают в базу Zabbix, изменяются с течением времени по-разному. Какие-то значения динамичны по природе своей, какие-то тяготеют к постоянству и только периодически меняют значения. С версии Zabbix 4.2 доступна для каждого элемента данных (item) во вкладке Предобработка (Preprocessing) возможность выставить Троттлинг (пропуск одинаковых значений). Данный функционал по логике своей старается не заполнять базу данных чередой одинаковых значений и экономит дисковое пространство. Круто? Круто! Но у всего есть цена.
Пропускать одинаковое можно двумя альтернативными на выбор вариантами:
Этапы, которые проходит конкретное значение, от сбора до попадания в базу данных.
В документации проекта есть главные слова о первом минусе троттлинга, несказанные явно.
Если значение отбрасывается, оно не сохраняется в базе данных и Zabbix сервер не будет знать, что это значение было получено. Выражения триггеров не будут пересчитываться, в результате не будут созданы/закрыты проблемы по связанным триггерам. Функции триггеров будут работать только на основе данных, которые фактически сохраняются в базе данных.
Для примера, возьмём шаблон Network Generic Device SNMP и в нём конкретный элемент ICMP ping (icmpping). Интервал обновления (опроса) по умолчанию 1 минута.
Если у вас оборудование не выключается по окончании рабочего дня и работает 24/7, то бо́льшую часть времени в базу данных по данному элементу данного конкретного работоспособного устройства постоянно будут идти в базу данных одни единички (1 - успешный пинг по ICMP). Если оборудование работает условные 8 часов, сути дела не меняет - 8 часов единички, оставшиеся в сутках 16 часов - в базу идут нолики когда устройство штатно выключено.
За сутки будет 1440 значений с каждого устройства. Если сетевых устройств много, то умножаем их количество на 1440 и получаем количество записей в базе данных только за 1 сутки, а потом недели превратятся в месяцы, а те в годы. Схожих с icmpping элементов обычно много. Может прийти в голову гениальная идея применить к ним троттлинг, чтобы сократить нагрузку на базу данных и занятое ею место.
Как неправильное и бездумное использование троттлинга может привести к отрицательному результату?
Продолжаем пример. Для элемента данных icmpping есть триггер, который после трёх неудачных попыток пропинговать устройство, сообщает об недоступности устройства (Unavailable by ICMP ping). Код триггера - max(/Network Generic Device SNMP/icmpping,#3)=0
По логике автора шаблона Network Generic Device SNMP три попытки (#3) через каждую минуту и вот не позднее трёх минут вы в курсе проблемы. Если применить троттлинг и выставить "Отбрасывать не изменившееся с периодическим контролем (Discard unchanged with heartbeat)" в 1h, то минутные значения не попадают в базу данных. Триггер получит второе значение только через 1 час, а три попытки приведут к информированию вас через 3 часа. Если устройство снова станет доступно в пределах трёх часов, то вместо ноликов снова пойдут единички и выражение триггера не приведёт вас к информированию, что была какая-то проблема с недоступностью устройства по ICMP.
А применение "Отбрасывать не изменившееся (Discard unchanged)" вообще делает триггер нефункциональным.
В терминах Zabbix есть различные виды графиков и первый из них - График классический (Graph classic) → Простой График (Simple graphs). Раз в базе по каждому элементу есть дата-время и значение, то Простой График строится средствами Zabbix, откладывая дата-время по оси X, а значение по оси Y. При троттлинге часть дата-время-значение отсутствует и это визуально портит Простые Графики, делая их рваными.
Частично можно выкрутиться, отказавшись от Простых Графиков и используя Графики (Graph). В окне создания Графика будет доступен компенсирующий функционал Соединение (Connected) для Отсутствующих данных (Missing Data).
График будет правильно компенсировать отсутствие данных, а точнее повтор предыдущего значения, так как следующие значения были отброшены троттлингом.
SELECT name, count(name) as cname
FROM items
GROUP BY name
ORDER BY cname DESC
узнайте ТОП повторяющихся элементов. Их анализ в приоритете - вдумчивое решение по интервалам опроса и/или применение троттлинга принесёт наибольший эффект. Будьте придельны аккуратны - стандартные шаблоны создают профессионалы. Для того чтобы менять дефолтные значения, требуется грамотная аргументация и понимание ситуации.
Zabbix Server | Установка и настройка
Дополнительные материалы:
Шаблон Operating System Identification для Zabbix.
Zabbix и Ubuntu Snappy Core.