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 fields добавьте три поля post:
    • name со значением {user}
    • password со значением {password}
    • enter со значением Sign in
  • Заполните общие поля.
  • Установите флажок Follow redirects.

Обратите внимание, что веб-интерфейс Zabbix использует перенаправление JavaScript при входе в систему, поэтому сначала должен выполняться вход, а функции для вошедших в систему пользователей можно проверять только на последующих шагах. Кроме того, шаг входа должен использовать полный URL к файлу index.php.

Шаг 3 веб-сценария

После входа в систему проверьте успешность, найдя строку, видимую только после входа, например Administration.

  • В поле Name введите Login check.
  • В поле URL введите URL, на который пользователь перенаправляется после входа в систему (например, http://127.0.0.1/zabbix.php?action=dashboard.view).
  • В поле Required string введите Administration.
  • В разделе Variables добавьте пару имя-значение {csrf_token}: regex:([0-9a-z]{64}). Эта переменная позволит получить значение назначенного CSRF-токена для повторного использования в шаге 4 веб-сценария.
  • Заполните общие поля.

Шаг 4 веб-сценария

После того как доступность веб-интерфейса и вход в систему будут проверены, добавьте шаг выхода из системы — иначе база данных Zabbix будет засоряться множеством открытых записей сеансов.

  • В поле Name введите Logout.
  • В разделе Post fields добавьте два post field:
    • reconnect со значением 1
    • _csrf_token со значением {csrf_token}.
  • Заполните общие поля.
  • Установите флажок Follow redirects.

В этом шаге используется переменная {csrf_token}, полученная в Шаге 3 веб-сценария

Веб-сценарий, шаг 5

Чтобы подтвердить выход, проверьте строку Username (Имя пользователя).

  • В поле Имя (Name) введите Logout check.
  • В поле Требуемая строка (Required string) введите Username.
  • Заполните общие поля.

Полная конфигурация шагов

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

Проверка результатов

Сохраните готовый сценарий веб-мониторинга.

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

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