Дано: Критически важный сайт, который нужно мониторить и в случае неработоспособности уведомлять админов.
- Версия Zabbix: 6.0.1
- Версия Grafana: 11.6.0
- Мониторинг будем настраивать на получение кода 200.
Если авторизация удалась, то считаем это за 1, если нет, то 0.
Запрос каждую минуту - 2-е неуспешные авторизации = срабатывание триггера
В первой части статьи мы создадим скрипт и настроим zabbix на сбор метрик.
Во второй части сделаем оповещение пользователей Zabbix и визуализируем результаты мониторинга в Grafana.
Порядок действий:
- Выбрать сервер, с установленным zabbix-агентом. Написать скрипт.
- Добавить пользовательский параметр в конфигурацию zabbix-агента
- Создать шаблон (элементы, триггеры) + назначить хосту (В моём примере это будет сам zabbix-сервер)
- Настроить SLA
- Настроить оповещения
- Создать пользователя (группу пользователей) для уведомлений + создание действия
- Визуализация в Grafana
Шаг 1. Выбрать сервер, с установленным zabbix-агентом. Написать скрипт.
В качестве сервера, который будет запускать скрипт и получать значение у меня будет Zabbix-сервер. Захожу на сервер. Создаю скрипт:
| |
Пример написанного мною скрипта. Используется Python3 и библиотеки: requests, sys, warnings.
Делаем исполняемым:
| |
Меняем группу владельца на zabbix
| |
Запускаем тестируем:
| |
![]()
Шаг 2. Добавить пользовательский параметр в конфигурацию zabbix-агента
| |
Находим параметр: UserParameter
Где, site.auth - переменная, в которую будет записываться значение полученное после выполнения скрипта.
/opt/monitoring/site-check.py - путь до скрипта.
| |

Рестартим сервис:
| |
Проверяем, что zabbix понимает переменную:
| |
![]()
Шаг 3. Создать шаблон (элементы, триггеры) + назначить хосту
Идем в веб-интерфейс Zabbix. Создаём шаблон:
Templates -> Create template

-> Add
Создаем элемент:
Items -> Create item

Далее Test -> Host address Наш сервер, на котором запускается скрипт -> Port: 10050
В Value появится 1, если авторизация доступна или 0 если недоступна.
-> Add
Создаем триггер
Triggers -> Create Trigger

Я закладываю логику: Если два раз подряд авторизация завершится неудачно, тогда срабатывает триггер.
Напоминаю, что используется Zabbix 6.0 поэтому параметры типа count с тремя значениями использоваться ещё не могут. Будем брать последние 2 значения:
| |
- где, #1 = Последнее полученное значение ключа, #2 = Предпоследнее полученное значение ключа
Далее переходим в Tag и назначаем

-> Add
Шаг 4. Настройка SLA
Service -> SLA -> Create SLA

| |
-> Add
Создаём сервис
Services -> Edit - Create service

-> Add
Назначаем тег

Настройка сбора метрик завершена. В следующей части оповещения и визуализация в Grafana.
Часть 2 -> https://itzm.tech/p/zabbix2/
