[comment]: # ({d9bf322f-f34132a6})
# 2. Сценарий из реальной жизни

[comment]: # ({/d9bf322f-f34132a6})

[comment]: # ({608fb726-d43d02d4})
#### Обзор

В этом разделе представлен пошаговый пример из реальной жизни того, как можно использовать веб-мониторинг.

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

[comment]: # ({/608fb726-d43d02d4})

[comment]: # ({51af514b-51af514b})
#### Сценарий

[comment]: # ({/51af514b-51af514b})

[comment]: # ({a0f82e40-6b72dd59})
##### Добавление нового веб-сценария

Перейдите в *Сбор данных → Узлы сети (Data collection → Hosts)*, выберите узел сети и нажмите на ссылку *Веб (Web)* в строке этого узла сети. Затем нажмите *Создать веб-сценарий (Create web scenario)*.

![](../../../assets/en/manual/web_monitoring/new_scenario.png){width="600"}


В диалоге нового сценария заполните следующие поля:

- **Имя (Name)** — Frontend check
- **Интервал обновления (Update interval)** — 1m
- **Попыток (Attempts)** — 1
- **Агент (Agent)** — Zabbix

В разделе *Переменные* добавьте две переменные: *{password}* и *{user}*. 
В качестве значений введите существующие учётные данные пользователя Zabbix.

В целях безопасности рекомендуется создать отдельного пользователя с минимальными правами для использования в целях мониторинга.

При желании переключитесь на вкладку *Теги (Tags)* и добавьте теги веб-сценария.

:::notetip
После полной настройки этот веб-сценарий автоматически добавит к узлу сети элемент данных Zabbix Trapper.
Вы можете использовать теги веб-сценария для быстрой идентификации связанных элементов данных и триггеров или поиска по собранным данным.
Например, подходящими тегами для этого руководства являются `component: web-scenario` и/или `target: frontend`.
::: 

[comment]: # ({/a0f82e40-6b72dd59})

[comment]: # ({86824bcb-475cbb1a})
##### Настройка шагов веб-сценария

Перейдите на вкладку *Шаги (Steps)* и задайте шаги для сценария. Нажмите кнопку *Добавить (Add)*, чтобы добавить отдельный шаг.

[comment]: # ({/86824bcb-475cbb1a})

[comment]: # ({75dcae2e-8e70e0cd})
###### Общие поля

Для каждого шага, описанного ниже, заполните следующие поля в дополнение к полям, специфичным для шага:

- **URL** - URL веб-интерфейса Zabbix
- **Timeout** - 15s
- **Required status codes** - 200

[comment]: # ({/75dcae2e-8e70e0cd})

[comment]: # ({40559ed2-c793921e})
###### Шаг 1 веб-сценария

Проверьте, что первая страница отвечает корректно, возвращает код ответа HTTP 200 и содержит текст "Zabbix SIA".

- В поле **Name** введите *First page*.
- В поле **Required string** введите *Zabbix SIA*.
- Заполните [общие поля](#common-fields).

После завершения настройки шага нажмите кнопку *Add*.

![](../../../assets/en/manual/web_monitoring/scen_step1.png){width="600"}

[comment]: # ({/40559ed2-c793921e})

[comment]: # ({713aa628-3bec9061})
###### Шаг 2 веб-сценария

Войдите в веб-интерфейс Zabbix, используя макросы (переменные), определенные на уровне сценария - *{user}* и *{password}*.

- В поле **Name** введите *Login*.
- В разделе **Post fields** добавьте три поля post:
    - *name* со значением *{user}*
    - *password* со значением *{password}*
    - *enter* со значением *Sign in*
- В разделе **Variables** добавьте новую переменную *{csrf_token}* со значением *regex:([0-9a-z]{64})*.
Эта переменная будет перехватывать значение назначенного CSRF-токена для повторного использования в [шаге 4](#web-scenario-step-4).
- Заполните [общие поля](#common-fields).

![](../../../assets/en/manual/web_monitoring/scen_step2.png){width="600"}

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

[comment]: # ({/713aa628-3bec9061})

[comment]: # ({635690e6-ea24f4e7})
###### Шаг 3 веб-сценария

После входа в систему проверьте успешность, убедившись, что отображается строка, видимая только после входа в систему, например *Administration*.

- В поле **Name** введите *Login check*.
- В поле **Required string** введите *Administration*.
- Заполните [общие поля](#common-fields).

![](../../../assets/en/manual/web_monitoring/scen_step3.png){width="600"}

[comment]: # ({/635690e6-ea24f4e7})

[comment]: # ({06efb3e5-684b5527})
###### Шаг 4 сценария веб-мониторинга

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

- В поле **Name** введите *Logout*.
- В разделе **Post fields** добавьте два поля post:
    - *reconnect* со значением *1*
    - *\_csrf_token* со значением *{csrf_token}*.
- Заполните [общие поля](#common-fields).

В этом шаге используется переменная {csrf_token}, полученная на [шаге 2](#web-scenario-step-2)

![](../../../assets/en/manual/web_monitoring/scen_step4.png){width="600"}

[comment]: # ({/06efb3e5-684b5527})

[comment]: # ({5bdfc52a-5c1c5393})
###### Шаг 5 веб-сценария

Чтобы подтвердить выход из системы, проверьте наличие строки **Username**.

- В поле **Name** введите *Logout check*.
- В поле **Required string** введите *Username*.
- Заполните [общие поля](#common-fields).

![](../../../assets/en/manual/web_monitoring/scen_step5.png){width="600"}

[comment]: # ({/5bdfc52a-5c1c5393})

[comment]: # ({2b6fe488-5c42025e})
###### Полная конфигурация шагов

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

![](../../../assets/en/manual/web_monitoring/scenario_steps.png){width="600"}

[comment]: # ({/2b6fe488-5c42025e})

[comment]: # ({c2a12418-3e213338})
##### Проверка результатов

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

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

![](../../../assets/en/manual/web_interface/web_monitoring.png){width="600"}

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

![](../../../assets/en/manual/web_monitoring/scenario_details2.png){width="600"}

[comment]: # ({/c2a12418-3e213338})
