вторник, 11 июня 2013 г.

ZABBIX. Частое срабатывание триггера. Функция COUNT.

ВЕБ-мониторинг в ZABBIX работает хорошо, триггеров довольно много. Но если сам ВЕБ-сервис подвисает, то ZABBIX начинает добросовестно слать оповещения, т.е. в данном случае спам. Справился с этой проблемой ... нет, не переустановкой сервиса (нельзя его просто пока трогать) а настройкой чувствительности триггера. Хотя можно просто отредактировать времени ожидания шага сценария: Настройка - Веб - выбор сценария - шаги время ожидания. Но этот вариант мне как-то не пришелся по душе. Я изменил условие триггера таким образом, что он срабатывает лишь если проверка доступности сайта два раз подряд завершится неудачно.
При стандартном создании триггера создается следующее выражение: web.test.fail[имя сервиса].last(0)}#0. Т.е. если проверка доступности сервиса возвращает не 0 (а 0 - это норма) то триггер срабатывает. Вместо last(0)}#0 поставим count(#2,1)}=2. Теперь триггер работает следующим образом: Количество последних 2 значений равно «1», т.е. если проверка доступности сайта два раз подряд завершится неудачно, триггер срабатывает.

Значения функции COUNT:

Количество собранных значений за период. Период задается первым параметром в секундах или количеством значений (после символа # решетки).
Функция принимает второй опциональный параметр шаблон, третий параметр оператор и четвертый параметр сдвиг_времени.
Для шаблон:
Элементы данных с типом целочисленный - точное совпадение;
Элементы данных с типом с плавающей запятой - совпадение с точностью до 0.000001
Поддерживаемые операторы *:
eq - равно
ne - не равно
gt - больше
ge - больше или равно
lt - меньше
le - меньше или равно
like (только текстовый поиск) - совпадают, если содержат шаблон.
*Для целочисленных и элементов данных с плавающей точкой: поддерживаются операторы eq (по умолчанию), negtgeltle.
*Для элементов данных строки, текста и журнала: поддерживаются операторы like (по умолчанию), eqne.
Примеры:
count(600) - количество значений за последние 10 минут
count(600,12) - количество значений за последние 10 минут, которые равны '12'
count(600,12,"gt") - количество значений за последние 10 минут, которые больше '12'
count(#10,12,”gt”) - количество значений за последние 10 значений, которые больше '12'
count(600,12,"gt",86400) - количество значений обработанных за 10 минут 24 часа назад, которые больше '12'
count(600,,,86400) - количество значений обработанных за 10 минут 24 часа назад
Параметр #num поддерживается Zabbix начиная с версии Zabbix 1.6.1.
Параметр сдвиг_времени и строковые операторы поддерживаются Zabbix начиная с версии 1.8.2. Смотрите функцию avg() в качестве примера по использованию сдвига_времени.

1 комментарий:

  1. спасибо, поменяй
    count(600,12,"gt") - количество значений за последние 10 минут, которые равны '12'
    на
    count(600,12,"gt") - количество значений за последние 10 минут, которые БОЛЬШЕ '12'

    ОтветитьУдалить