[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-d4aa4f48})
###### Общие поля

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

- **URL** — URL веб-интерфейса Zabbix
- **Время ожидания (Timeout)** — 15s 
- **Требуемые коды состояния (Required status codes)** — 200
 

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

[comment]: # ({40559ed2-c26001e1})
###### Веб-сценарий, шаг 1

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

- В поле **Имя (Name)** введите *First page (Первая страница)* .
- В поле  **Требуемая строка (Required string)** введите *Zabbix SIA*. 
- Заполните [общие поля](#общие-поля). 

Закончив настройку шага, нажмите кнопку *Добавить (Add)*.

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

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

[comment]: # ({713aa628-f896c160})
###### Веб-сценарий, шаг 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](#веб-сценарий-шаг-4).
- Заполните [общие поля](#общие-поля).

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

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

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

[comment]: # ({635690e6-1a116229})
###### Веб-сценарий, шаг 3

После входа в систему убедитесь в успешности, проверив строку, видимую только при входе в систему, например, *Administration (Администрирование)*.

- В поле **Имя (Name)** введите *Login check*.
- В поле **Требуемая строка (Required string)** введите *Administration*. 
- Заполните [общие поля](#общие-поля).

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

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

[comment]: # ({06efb3e5-834e4858})
###### Веб-сценарий, шаг 4

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

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

На этом шаге используется переменная {csrf_token}, полученная на [шаге 2](#веб-сценарий-шаг-2)

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

[comment]: # ({/06efb3e5-834e4858})

[comment]: # ({5bdfc52a-cff4750f})
###### Веб-сценарий, шаг 5

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

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

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

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

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

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

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

[comment]: # ({/2b6fe488-8ef2e8b2})

[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})
