Эта статья про триггеры в Zabbix, здесь я кратко опишу суть этих триггеров и расскажу как их можно применять.
Что такое триггеры
Zabbix позволяет собирать некоторые метрики с наблюдаемых хостов, эти метрики называются элементами данных. Триггеры нужны чтобы получить информацию о том, что какая-та метрика вышла за рамки.
Например, мы собираем данные о потребляемой памяти, а точнее, раз в 30 секунд получаем процент занятой памяти на сервере. Для этого мы в Zabbix добавили этот сервер как узел сети, и на этот узел добавили элемент данных.
Затем, мы хотим получать оповещение, если уже используется 80% всей памяти. Для этого мы на элемент данных вешаем триггер — это такая функция, проверяющая значение элемента данных. И если это значение попадает в некий диапазон триггера, то триггер срабатывает.
А уже на триггер мы можем настроить действие. В качестве действия может быть отправка оповещения на электронную почту.
То-есть, элемент данных выдал 81%, триггер был настроен на число большее 80%, триггер сработал. А раз он сработал, то будет отправлено оповещение.
Добавление триггера
Для начала научимся создавать триггеры. Для этого открываем web-интерфейс и переходим по меню «Настройка / Узлы сети». С помощью фильтров находим необходимый узел сети. Для этого можем указать «Группу узлов сети». У выбранного узла сети нажимаем ссылку «Триггеры».
В открывшемся окне нажимаем кнопку «Создать триггер».
Придумываем Имя триггера, а Имя события получает аналогичное имя. Указываем Важность триггера. И возле поля «Выражение» нажимаем кнопку «Добавить».
В открывшемся окне выбираем «Элемент данных» по которому мы создаём триггер и функцию триггера. Про функции будет написано ниже. Указываем за какое количество проверок или времени должен сработать триггер. В результат пишем условие триггера.
В примере выше мы выбрали функцию nodata(). Эта функция проверяем что данные не собираются уже какое-то время. Я указал — за последние 3 минуты. А это значит, если данные от этого элемента данных не будут получены в течении 3 минут, то сработает триггер. В результате я указал 1, то есть триггер сработает когда данные не будут получены (1 — правда). Если бы я указал 0 — то он бы сработал, когда данных были получены.
После нажатия на кнопку «Вставить» у вас получится следующее выражение:
nodata(/узел_сети/элемент_данных,3m)=1
Это выражение и есть триггер. Дальше мы разберём ещё несколько функций.
Выражения триггеров
Выражения триггеров состоят из функций. В одном выражении может быть несколько элементов данных и несколько функций. Но в этой статье будут разобраны лишь самые простые примеры для знакомства с триггерами.
Отсутствие данных:
nodata(/узел_сети/элемент_данных,3m)=1
- Триггер сработает, если от элемента данных не будет получено данных в течении 3 минут.
- Например, этот триггер может быть повешен на элемент данных agent.ping, проверяющий доступность агента.
Превышение среднего значения:
avg(/узел_сети/элемент_данных,3m)>70
- Триггер сработает, если среднее число получаемых значений будет выше 70.
- Например, это может быть загрузка CPU, Памяти или занятость Диска.
Последнее значение:
last(/узел_сети/элемент_данных,#1)>70
- Триггер сработает, если последнее значение (самое новое) будет выше 70.
- Например, это может быть процент занятого места на диске.
Изменение значения:
change(/узел_сети/элемент_данных)<>0
- Триггер сработает, если последнее значение отличается хоть как-то от предпоследнего.
- Например, этот триггер можно повесить на элемент данных vfs.file.chsum, который проверяет контрольную сумму файла.
Постоянное превышение:
min(/узел_сети/элемент_данных,5m)>80M
- Триггер сработает, если за последние 5 минут, значение постоянно превышало 80MB.
- Например, это может быть загрузка сетевого интерфейса.
Одинаковые значения:
count(/узел_сети/элемент_данных,30m,,"0")>5
- Триггер сработает, если элемент данных возвратит 0 при проверке 5 раз за последние 30 минут.
- Например, мы пингуем какой-нибудь хост.
Сверка времени на узле и на сервере Zabbix:
fuzzytime(/узел_сети/элемент_данных,10s)=0
- Триггер сработает, если время на проверяемом узле будет отличаться от времени на Zabbix сервере на 10 секунд.
- Такой триггер можно повесить на элемент данных system.localtime.
Некоторые параметры функций
Разные функции могут иметь разные параметры. Но большинство числовых функций принимают время в качестве параметра, или количество проверок:
- функция(/узел сети/ключ,10m) — за последние 10 минут;
- функция(/узел сети/ключ,#10) — за последние 10 проверок.
В случае функции last() нет смысла указывать количество последних проверок. Например триггер: last(/узел_сети/элемент_данных,#3)>70
, означает что третье значение было больше 70. Работает это так: получили мы 75 — триггер не сработал, получили 60 — триггер не сработал, получили 63 — триггер сработал, так как третье значение было больше 70. Получается триггер отложенный по времени.
Дополнительную информацию по триггерам можете посмотреть в официальном руководстве — здесь.
Другие мои статьи по Zabbix доступны здесь.
Если понравилась статья, подпишись на мой канал в VK.
Спасибо за просмотр:)