Как настроить задержку срабатывания триггера в Zabbix (исключаем ложные тревоги)
Постановка задачи
Имеется web-сервер, имеется zabbix в котором настроен web-мониторинг сервера. Проблема в том, что web-сервер и zabbix сервер находятся на разных континентах, иногда между ними случается потеря одного-двух пакетов, что вызывает ложные срабатывания один-два раза в день.
Вариант решения
Решение просится само собой: необходимо настроить триггер таким образом, что бы он срабатывал не сразу, а только в том случае, если сервис недоступен некоторое время (несколько проверок подряд).
Для этого, я пользуюсь опцией триггера count, хотя возможны другие варианты.
подробно об этой опции можно прочесть в документации zabbix
Пример реализации
Итак, наш zabbix запускает сценарий web-мониторинга каждые 60 секунд. Если не найдено ошибок, то в элементе данных web-test-messaging-history-Tomcat-checker
возвращается “0”.
Выражение для триггера будет выглядеть следующим образом:
{messaging-history:web.test.fail[Tomcat-checker1].count(#3,0,ne)}>2
Данный триггер подсчитывает какое количество раз за последние 3 запуска значение элемента данных “web-test-messaging-history-Tomcat-checker” не равнялось 0, и если полученное число больше 2, то триггер срабатывает.
помним, что сценарий запускается раз в минуту
Другими словами: Если из трех идущих подряд проверок хотя бы одна была успешной, то считаем, что сайт в порядке
Или еще более другими словами :) Если сайт недоступен в течение трех минут подряд – то считаем что он упал.
вот как выглядит это на скриншоте:

Enjoy!