2. Сценарий из реальной жизни
Обзор
В этом разделе представлен пошаговый пример из реальной жизни того, как можно использовать веб-мониторинг.
Веб-мониторинг Zabbix будет использоваться для мониторинга веб-интерфейса Zabbix. Цель состоит в том, чтобы определить, доступен ли он, предоставляет ли нужный контент и насколько быстро он работает. Для этого требуется выполнить несколько шагов, включая проверку доступности первой страницы, вход в систему с использованием имени пользователя и пароля, проверку успешности входа, выход из системы и подтверждение выхода из системы.
Сценарий
Добавление нового веб-сценария
Перейдите в Сбор данных → Узлы сети (Data collection → Hosts), выберите узел сети и нажмите на ссылку Веб (Web) в строке этого узла сети. Затем нажмите Создать веб-сценарий (Create web scenario).

В диалоге нового сценария заполните следующие поля:
- Имя (Name) — Frontend check
- Интервал обновления (Update interval) — 1m
- Попыток (Attempts) — 1
- Агент (Agent) — Zabbix
В разделе Переменные добавьте две переменные: {password} и {user}. В качестве значений введите существующие учётные данные пользователя Zabbix.
В целях безопасности рекомендуется создать отдельного пользователя с минимальными правами для использования в целях мониторинга.
При желании переключитесь на вкладку Теги (Tags) и добавьте теги веб-сценария.
После полной настройки этот веб-сценарий автоматически добавит к узлу сети элемент данных Zabbix Trapper.
Вы можете использовать теги веб-сценария для быстрой идентификации связанных элементов данных и триггеров или поиска по собранным данным.
Например, подходящими тегами для этого руководства являются component: web-scenario и/или target: frontend.
Настройка шагов веб-сценария
Перейдите на вкладку Шаги (Steps) и задайте шаги для сценария. Нажмите кнопку Добавить (Add), чтобы добавить отдельный шаг.
Общие поля
Для каждого шага, описанного ниже, заполните следующие поля в дополнение к полям, специфичным для шага:
- URL — URL веб-интерфейса Zabbix
- Время ожидания (Timeout) — 15s
- Требуемые коды состояния (Required status codes) — 200
Веб-сценарий, шаг 1
Проверка того, что первая страница отвечает правильно, возвращает код ответа HTTP 200 и содержит текст «Zabbix SIA».
- В поле Имя (Name) введите First page (Первая страница) .
- В поле Требуемая строка (Required string) введите Zabbix SIA.
- Заполните общие поля.
Закончив настройку шага, нажмите кнопку Добавить (Add).

Веб-сценарий, шаг 2
Регистрация в веб-интерфейсе Zabbix, используя макросы (переменные), определённые на уровне сценария — {user} и {password}.
- В поле Имя (Name) введите Login.
- В разделе Post поля (Post fields) добавьте три поля:
- name со значением {user}
- password со значением {password}
- enter со значением Sign in
- В разделе Переменные добавьте новую переменную {csrf_token} со значением regex:([0-9a-z]{64}). Эта переменная будет захватывать значение назначенного токена CSRF для повторного использования на шаге 4.
- Заполните общие поля.

Обратите внимание, что веб-интерфейс Zabbix использует перенаправление JavaScript при входе в систему, поэтому сначала мы должны зарегистрироваться в системе, и только в дальнейших шагах мы можем проверить функции, доступные после входа. Кроме того, шаг регистрации должен использовать полный URL файла index.php.
Веб-сценарий, шаг 3
После входа в систему убедитесь в успешности, проверив строку, видимую только при входе в систему, например, Administration (Администрирование).
- В поле Имя (Name) введите Login check.
- В поле Требуемая строка (Required string) введите Administration.
- Заполните общие поля.

Веб-сценарий, шаг 4
После проверки доступности веб-интерфейса и регистрации в системе добавьте шаг выхода из системы — в противном случае база данных Zabbix будет загромождена множеством записей открытых сессий.
- В поле Имя (Name) введите Logout.
- В разделе Post поля (Post fields) добавьте два поля:
- reconnect со значением 1
- _csrf_token со значением {csrf_token}.
- Заполните общие поля.
На этом шаге используется переменная {csrf_token}, полученная на шаге 2

Веб-сценарий, шаг 5
Чтобы подтвердить выход, проверьте строку Username (Имя пользователя).
- В поле Имя (Name) введите Logout check.
- В поле Требуемая строка (Required string) введите Username.
- Заполните общие поля.

Полная конфигурация шагов
Полная конфигурация шагов веб-сценария должна выглядеть так:

Проверка результатов
Сохраните готовый сценарий веб-мониторинга.
Сценарий будет добавлен к узлу сети. Чтобы просмотреть информацию о веб-сценарии, перейдите в Мониторинг → Узлы сети (Monitoring → Hosts), найдите узел сети в списке и нажмите на ссылку Веб (Web) в последнем столбце.

Чтобы увидеть более подробную статистику, нажмите на название сценария:
