# 8. Веб-мониторинг

#### Обзор

Благодаря Zabbix вы можете проверять несколько аспектов доступности
веб-сайтов.\

::: noteimportant
Для выполнения веб-мониторинга Zabbix сервер
должен быть изначально
[сконфигурирован](/ru/manual/installation/install#установка_из_исходных_кодов)
с поддержкой cURL (libcurl).
:::

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

Начиная с **Zabbix 2.2** веб-сценарии привязываются к узлам
сети/шаблонам тем же образом как элементы данных, триггеры и т.д. Это
означает, что веб-сценарии можно создавать не уровне шаблона и далее
применять к нескольким узлам сети одним движением.

Каждым веб-сценарием собирается следующая информация:

-   средняя скорость загрузки в секунду для всех шагов для всего
    сценария
-   номер шага, который завершился с ошибкой
-   последнее сообщение об ошибке

На каждом шаге веб-сценария собирается следующая информация:

-   скорость загрузки в секунду
-   время ответа
-   код ответа

Для получения более детальных сведений смотрите [элементы данных веб
мониторинга](/ru/manual/web_monitoring/items).

Собранные данные с выполненных веб-сценариев хранятся в базе данных. Эти
данные автоматически используются для графиков, триггеров и оповещений.

Zabbix может также проверять содержит ли полученная HTML страница
заданную строку. Он может выполнить эмуляцию входа и следовать пути,
эмулируя нажатия мышкой на странице.

Веб-мониторинг в Zabbix поддерживает как HTTP, так и HTTPS. При
выполнении веб-сценария, Zabbix сервер всегда следует перенаправлениям.
Все cookies запоминаются на протяжении выполнения одного сценария.

#### Настройка сценария

Для настройки веб-сценария:

-   Перейдите: *Настройка → Узлы сети(или Шаблоны)*
-   Нажмите на *Веб* в строке с узлом сети/шаблоном
-   Нажмите на *Создать сценарий* в верхнем правом углу (или на имени
    сценария для редактирования существующего сценария)
-   Введите в диалоге параметры сценария

Вкладка **Сценарий** позволяет вам настроить общие параметры
веб-сценария.

![](../../assets/ru/manual/config/scenario.png)

Общие параметры:

|Параметр|Описание|
|----------------|----------------|
|*Узел сети*|Имя узла сети/шаблона к которому принадлежит сценарий.|
|*Имя*|Уникальное имя сценария.<br>*Начиная с Zabbix 2.2*, имя может содержать поддерживаемые [макросы](/ru/manual/appendix/macros/supported_by_location).|
|*Группа элементов данных*|Выберите группу элементов данных к которой будет принадлежать веб-сценарий.<br>Элементы данных веб-сценария будут сгруппированы под выбранной группой элементов данных в *Мониторинг→Последние данные*|
|*Новая группа элементов данных*|Введите название новой группы элементов данных для сценария.|
|*Аутентификация*|Опции аутентификации.<br>**Пусто** - без использования аутентификации.<br>**Простая аутентификация** - с использованием простой аутентификации.<br>**NTLM аутентификация** - с использованием NTLM ([Windows NT LAN Manager)](http://en.wikipedia.org/wiki/NTLM) аутентификации.<br>Выбрав какой-либо метод аутентификации, будут доступны доступны два дополнительных поля для ввода имени пользователя и пароля.<br>*Начиная с Zabbix 2.2*, в полях имя пользователя и пароль можно использовать пользовательские макросы.|
|*Интервал обновления (в сек)*|Как часто сценарий будет выполняться, в секундах.|
|*Попыток*|Количество попыток выполнения шагов веб-сценария. В случае сетевых проблем (превышено время ожидания, отсутствие подключения и прочего) Zabbix может повторить выполнение шагов несколько раз. Указанное количество будет одинаково действовать для каждого шаг сценария. Можно указать до 10 попыток, значение по умолчанию равно 1.<br>*Примечание*: Zabbix не повторит шаг из-за ошибочного кода ответа или несовпадении необходимой строки.<br>Данный параметр поддерживается начиная c Zabbix 2.2.|
|*Агент*|Выбор агента клиента.<br>Zabbix будет представляться выбранным браузером. Полезно для мониторинга Веб-сайтов, которые генерируют различное содержимое для разных браузеров.<br>*Начиная с Zabbix 2.2*, в этом поле можно использовать пользовательские макросы.|
|*HTTP прокси*|Вы можете указать необходимый HTTP прокси, следуя следующему формату: *http://\[имя пользователя\[:пароль\]@\]прокси.mycompany.com\[:порт\]*<br>По умолчанию будет использоваться порт 1080.<br>Если указан, прокси заменит переменные окружения связанные с прокси такие как HTTP\_PROXY, HTTPS\_PROXY. Если не указан, переменные окружения не будут заменены.<br>Введённое значение передается "как есть", проверка правильности не производится. Вы также можете указать адрес SOCKS прокси. Если вы укажите ошибочный протокол, подключение провалится и элемент данных станет неподдерживаемым. Если протокол не указан, прокси будет считаться HTTP прокси.<br>В этом поле можно использовать пользовательские макросы.<br>*Примечание*: Для HTTP прокси поддерживается только простая аутентификация.<br>Данный параметр поддерживается начиная с Zabbix 2.2.|
|*Переменные*|Список переменных (макросов), которые затем можно использовать в шагах сценария (URL, переменные Post).<br>Переменные имеют следующий формат:<br>**{макрос1}**=значение1<br>**{макрос2}**=значение2<br>{макрос3}=regex:<регулярное выражение><br>Например:<br>{username}=Alexei<br>{password}=kj3h5kJ34bd<br>{hostid}=regex: hostid is (\[0-9\]+)<br>Если часть значения начинается с regex:, тогда последующая часть обрабатывается как регулярное выражение, которое будет искать указанную часть веб-страницы, и если найдет, запомнит найденное значение в переменную. Заметьте, что как минимум одна подгруппа должна присутствовать так, чтобы найденные значения можно было извлечь.<br>Далее на макросы можно ссылаться в шагах, используя {username}, {password} и {hostid}. Zabbix автоматически заменит их на реальные значения.<br>Переменные, которые ищут совпадение части веб-страницы по регулярному выражению, поддерживаются *начиная с Zabbix 2.2*.<br>В этом поле, *начиная с Zabbix 2.2*, можно использовать пользовательские макросы.|
|*Активирован*|Сценарий активирован, если параметр отмечен, в противном случае - деактивирован.|

::: notetip
Если поле *HTTP прокси* оставить пустым, можно
воспользоваться другим способом указать HTTP прокси, для этого
необходимо задать переменные окружения.

Для HTTP проверок - укажите переменную окружения **http\_proxy** для
пользователя Zabbix сервера. Например,
//http\_proxy=[http:%%//%%proxy\_ip:proxy\_port//](http:%%//%%proxy_ip:proxy_port//).

Для HTTPS проверок - укажите переменную окружения **HTTPS\_PROXY**.
Например,
//HTTPS\_PROXY=[http:%%//%%proxy\_ip:proxy\_port//](http:%%//%%proxy_ip:proxy_port//).
Более подробную информацию можно получить, выполнив в shell команду *\#
man curl*.
:::

Вкладка **Шаги** позволит вам настроить шаги веб-сценария. Чтобы
добавить шаг веб-сценария, нажмите на *Добавить*.

![](../../assets/ru/manual/config/scenario2.png){width="700"}

#### Настройка шагов

![](../../assets/ru/manual/config/scenario_step.png){width="600"}

Параметры шага:

|Параметр|Описание|
|----------------|----------------|
|*Имя*|Уникальное имя шага.<br>*Начиная с Zabbix 2.2.*, имя может содержать поддерживаемые [макросы](/ru/manual/appendix/macros/supported_by_location).|
|*URL*|URL для подключения и получения данных. Например:<br>http://www.zabbix.com<br>https://www.google.com<br>Можно указывать GET переменные в URL параметре.<br>*Начиная с Zabbix 2.2.*, имя может содержать поддерживаемые [макросы](/ru/manual/appendix/macros/supported_by_location).|
|*Post*|Переменные HTTP POST, если они имеются.<br>Например:<br>id=2345&userid={user}<br>Если {user} задан макросом веб-сценария, он будет заменен своим значением при выполнении шага.<br>Информация будет отправлена как есть, переменные не являются URL-кодированными.<br>*Начиная с Zabbix 2.2.*, имя может содержать поддерживаемые [макросы](/ru/manual/appendix/macros/supported_by_location).|
|*Переменные*|Список переменных (макросов) на уровне шага, которые можно использовать в GET и POST функциях.<br>Переменные на уровне шага переопределяют переменные уровня сценария или переменные из предыдущего шага. Однако, значение переменной с уровня шага влияет только на следующие шаги (и не на текущий шаг).<br>Они имеют следующий формат:<br>{макрос}=значение<br>{макрос}=regex:<регулярное выражение><br>Более подробную информацию вы найдете в описании переменных уровня [сценария](web_monitoring#настройка_веб_сценария).<br>Возможность использования переменных на уровне шага поддерживается *начиная с Zabbix 2.2*.<br>*Обратите внимание*: Перемененные не URL-кодированы.|
|*Время ожидания*|Zabbix не будет тратить более указанного количества секунд при обработке URL. В действительности же этот параметр определяет максимальное время содания подключения к URL и максимальное время для выполнения HTTP запроса. Следовательно, Zabbix не будет тратить более **2 x Время ожидания** секунд на один шаг.<br>Например: 15|
|*Требуемая строка*|Требуемый шаблон регулярных выражений.<br>Если полученное содержимое (HTML) не совпадает с требуемым шаблоном, то шаг будет считаться ошибочным. Если поле не заполнено, то проверка не производится.<br>Например:<br>Homepage of Zabbix<br>Welcome.\*admin<br>*Обратите внимание*: Ссылки на [регулярные выражения](regular_expressions), созданные в веб-интерфейсе Zabbix, в этом поле не поддерживаются.<br>*Начиная с Zabbix 2.2*, поле может содержать поддерживаемые [макросы](/ru/manual/appendix/macros/supported_by_location)|
|*Требуемые коды состояния*|Список ожидаемых кодов состояния HTTP. Если Zabbix получает код не из списка, то шаг будет считаться ошибочным.<br>Если поле не заполнено, то проверка не производится.<br>Например: 200,201,210-299.<br>*Начиная с Zabbix 2.2*, в поле можно использовать пользовательские макросы.|

::: noteclassic
Любые изменения в шагах веб-сценариев будут сохранены
только, если сам сценарий был также сохранен.
:::

Смотрите также [пример из реальной
жизни](/ru/manual/web_monitoring/example), о том как можно настроить
шаги веб-мониторинга.

#### Просмотр

Для просмотра детальных данных добавленных веб-сценариев, перейдите в
*Мониторинг → Веб* или в *Последние данные*. Нажмите на имя сценария для
просмотра подробной статистики.

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

Обзор сценариев веб-мониторинга можно найти в *Мониторинг → ПАНЕЛЬ*.
