Найти тему
Stern lab

Постановка на мониторинг API

В каждом интернет-ресурсе есть REST API. Когда мы настраиваем мониторинг, нам часто нужно отслеживать и сам метод. Это позволяет избежать искажения статистики метрик и одновременно контролировать доступность.

В Zabbix есть возможность создать веб-сценарии.

Первым шагом создаем шаблон:

Создание шаблона
Создание шаблона

После добавления шаблона находим его в общем списке и нажимаем кнопку «Создать веб-сценарий»:

Создание веб-сценария
Создание веб-сценария

Вводим имя сценария и переходим на вкладку «Шаги»:

-3

В поле «Имя» мы вводим понятное нам название этой проверки. Затем мы заходим в раздел «Нетворк» на сайте и получаем curl нашего запроса. Я использую Postman для разбора этого запроса, поэтому я импортирую его туда.

-4

Из строки GET мы переносим ссылку в поле URL и переходим к следующему этапу — header. Построчно мы копируем имя ключа и его значение в блок переменных. Если мы хотим отслеживать POST-запрос, возможно, нам потребуется добавить значения в поля Post поля (в зависимости от того, как реализовано API).

В конце пишем искомое значение (если нам нужно отследить определённый параметр) и код ответа. Обычно это 200. Вот как это выглядит в моём случае:

-5
-6

Переходим к самому главному — добавление триггера на наш веб-сценарий.

Возвращаемся к списку шаблонов, находим тот, который создали в начале статьи, и на этот раз нажимаем «Триггеры» и в правом верхнем углу «Создать триггер»:

-7

Здесь нам нужно назвать его (это имя будет приходить в уведомление) и написать выражение проблемы и выражение восстановления.

Выражение проблемы (берет среднее за три попытки, и если больше единицы, то сценарий падает и триггер говорит об этом, при корректной работе будет ноль):

avg(/Название_шаблона/web.test.fail[Название_сценария],#3)>=1

Выражение восстановления (смотрит последний проход, если он равен нулю, то сценарий отрабатывает корректно):

last(/Название_шаблона/web.test.fail[Название_сценария])=0
-8

Здесь я написал готовые выражения, необходимо подставить только ваши имена шаблона и сценария.

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