Назад | Перейти на главную страницу

Отправлять значения NULL в пассивных проверках Zabbix

Недавно я настроил в Zabbix несколько пассивных проверок. Теперь я увидел, что некоторые проверки терпели неудачу в течение некоторых периодов времени, но это не ясно, глядя на график. Кажется, что на прошлой неделе стоимость была стабильной, но на самом деле она снизилась, и никто этого не заметил.

Есть ли способ отправить Zabbix NULL, чтобы указать, что выборка данных не удалась? И добавить триггер на этот случай? В настоящее время я использую инструмент командной строки zabbix_sender для загрузки результатов, но можно изменить на альтернативу.

Напротив, munin перестает строить график через 10 минут после получения последнего значения, и пропущенные значения также не влияют на расчет среднего значения.

Здесь вы можете увидеть, как отображаются «отсутствующие данные»:

на графике (я отметил «недостающие данные»):

в таблице "Последние данные" (строка неактивна, но значение "последняя проверка" показывает почти текущее время)

Кстати: такие же проблемы есть в icmppingsec[] check, который просто возвращает 0 в случае ошибки. Не очень полезно для построения графиков, но, по крайней мере, позволяет избежать ложных отрицаний.

Тот факт, что вы используете zabbix_sender подразумевает, что эти элементы относятся к типу "Zabbix trapper". С элементами трапперов ожидается поведение графика, описанное выше.

Для обычных элементов типа «Zabbix agent» и «Zabbix agent (active)» настроен интервал обновления, поэтому интерфейс знает, что данные должны приходить, скажем, каждые 30 секунд. Если нет данных за период, равный 4 интервалам обновления или около того, инструмент построения графиков не рисует линии для этого периода. Итак, в вашем случае, если бы предметы были любого другого типа, отмеченные линии не были бы нарисованы.

Однако для элементов трапперов интервал обновления отсутствует, поэтому интерфейс не знает, как часто должны поступать данные. Это может происходить каждую минуту, каждый день или нерегулярно. Таким образом, текущее решение - соединить каждые две точки на графике и расширить первое и последнее значения до границы графика.

Поведение может быть улучшено в будущем под https://support.zabbix.com/browse/ZBX-3356 .

На самом деле это возможно. Но это может измениться в будущей версии, потому что я думаю, что это ошибка в Zabbix:

Если вы измените тип элемента на «Zabbix agent (active)» (вместо «Zabbix trapper»), вы можете установить «Интервал обновления (в секундах)», и это будет работать должным образом, даже при использовании zabbix_sender вместо агента. .

Причина этого: Zabbix агент и zabbix_sender используют один и тот же протокол (есть лишь незначительные различия, например, строка "данные отправителя" vs. "данные агента" в поле «запрос»). Кроме того, кажется, что Zabbix не проверяет происхождение данных агента и не проверяет строку протокола, поэтому zabbix_sender можно даже запустить на любом хосте для отправки результатов активного агента zabbix - и через некоторое время (я измерял примерно 2-3 раза интервал обновления), линия графика останавливается, как и ожидалось, если данных больше нет.

Единственный недостаток этого решения: вы больше не можете использовать опцию «Разрешенные хосты».