Мониторинг веб-сайтов с помощью элементов данных Browser
Введение
На этой странице пошагово описаны действия, необходимые для начала базового мониторинга веб-сайтов с помощью элементов данных Browser.
Для кого предназначено это руководство
Это руководство предназначено для новых пользователей Zabbix и содержит минимальный набор шагов, необходимых для включения базового мониторинга веб-сайтов с помощью элементов данных Browser. Если вам нужны возможности глубокой настройки или более продвинутая конфигурация, см. страницу Browser items или раздел Configuration руководства Zabbix.
Предварительные требования
Перед тем как продолжить работу с этим руководством, вам необходимо загрузить и установить сервер Zabbix и веб-интерфейс Zabbix в соответствии с инструкциями для вашей ОС.
В зависимости от вашей среды некоторые шаги в этом руководстве могут незначительно отличаться. Это руководство основано на среде, работающей под Ubuntu.
Настройка WebDriver
Элементы данных браузера требуют фреймворк автоматизации (либо Selenium Server, либо обычный WebDriver, например ChromeDriver) в качестве конечной точки веб-тестирования, которая управляет браузером и взаимодействует с ним, выполняя тестовые команды, такие как нажатие кнопок или ввод текста. В качестве примера в этом руководстве будет использоваться Selenium Server с Chrome в контейнере Docker.
Предполагается, что Docker уже настроен. В этом руководстве не рассматривается настройка Docker. Инструкции по установке см. в разделе Install Docker Engine on Ubuntu.
1. Запустите Selenium Server с Chrome в контейнере Docker со следующими параметрами:
- docker run --name browser - запускает новый контейнер Docker с именем "browser";
- -p 4444:4444 - сопоставляет порт 4444 на вашем хосте с портом 4444 в контейнере (это порт, который Selenium Server использует для приема команд);
- -p 7900:7900 - сопоставляет порт 7900 на вашем хосте с портом 7900 в контейнере (это порт, который использует сервер Virtual Network Computing (VNC), позволяя удаленно просматривать графический интерфейс браузера; требуется VNC-клиент);
- --shm-size="2g" - выделяет контейнеру 2 ГБ общей памяти (это важно для корректной работы Chrome, так как ему может требоваться значительный объем общей памяти, чтобы избежать сбоев);
- -d - запускает контейнер в отсоединенном режиме, то есть он будет работать в фоновом режиме;
- selenium/standalone-chrome:latest - указывает используемый образ Docker; в данном случае это последняя версия Selenium Server with Chrome.
docker run --name browser \
-p 4444:4444 \
-p 7900:7900 \
--shm-size="2g" \
-d selenium/standalone-chrome:latest
2. Убедитесь, что контейнер Docker browser запущен и доступен.
- Получите IP-адрес контейнера (в этом примере, 192.0.2.1):
ip addr
# 1: lo: <LOOPBACK,UP,LOWER_UP>
# ...
# 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> ...
# inet 192.0.2.1/16 brd 192.0.255.255 scope global docker0
# ...
- Проверьте соединение с контейнером с помощью Ncat:
nc -zv 192.0.2.1 4444
# Connection to 192.0.2.1 4444 port [tcp/*] succeeded!
- Получите содержимое веб-страницы из Selenium Server с помощью curl:
curl -L 192.0.2.1:4444
# <!DOCTYPE html>
# <html lang="en">
#
# <head>
# <meta charset="utf-8"/>
# <link href="favicon.svg" rel="icon" type="image/svg">
# <meta content="width=device-width, initial-scale=1" name="viewport"/>
# <link href="logo192.png" rel="apple-touch-icon"/>
# <link href="manifest.json" rel="manifest"/>
# <title>Selenium Grid</title>
# </head>
#
# <body>
# ...
Для устранения неполадок см. Docker documentation.
Настройка сервера Zabbix
Элементы данных браузера выполняются и обрабатываются процессами Zabbix browser poller, которые необходимо включить, изменив параметр конфигурации сервера StartBrowserPollers. Кроме того, параметр WebDriverURL должен указывать на ранее настроенную конечную точку веб-тестирования.
По умолчанию параметр StartBrowserPollers установлен в 1, поэтому вам нужно указать только конечную точку веб-тестирования.
1. Откройте файл конфигурации сервера Zabbix:
vi /etc/zabbix/zabbix_server.conf
2. Найдите и задайте параметр WebDriverURL в файле конфигурации сервера Zabbix:
### Option: WebDriverURL
# WebDriver interface HTTP[S] URL. For example, http://localhost:4444 used with Selenium WebDriver standalone server.
#
# Mandatory: no
# Default:
# WebDriverURL=
WebDriverURL=192.0.2.1:4444
3. Перезапустите сервер Zabbix.
systemctl restart zabbix-server
Настройка веб-интерфейса Zabbix
1. Войдите в веб-интерфейс Zabbix.
2. Создайте узел сети в веб-интерфейсе Zabbix:
- В поле Host name введите имя узла сети (например, "git.zabbix.com").
- В поле Templates введите или выберите шаблон "Website by Browser". Дополнительные сведения об этом шаблоне см. в разделе Website by Browser.
- В поле Host groups введите или выберите группу узлов сети (например, новую группу узлов сети "Websites").

- На вкладке Macros переключитесь на Inherited and host macros, найдите следующие макросы и нажмите Change рядом со значением макроса, чтобы обновить его:
- {$WEBSITE.DOMAIN} - Доменное имя (например, git.zabbix.com/projects/ZBX/repos/zabbix/browse)
- {$WEBSITE.GET.DATA.INTERVAL} - Интервал обновления данных элемента данных (например, 15m)

3. Нажмите кнопку Add, чтобы создать узел сети. Этот узел сети будет представлять веб-сайт, который вы хотите мониторить.
Просмотр собранных метрик
Поздравляем! На этом этапе Zabbix уже отслеживает указанный вами веб-сайт.
Чтобы просмотреть собранные метрики, перейдите в раздел меню Monitoring > Hosts и нажмите Dashboards рядом с узлом сети.

Это действие откроет панель узла сети (настроенную на уровне шаблона) с наиболее важными метриками, собранными с веб-сайта.

Настройка оповещений о проблемах
Zabbix может уведомлять вас о проблемах в вашей инфраструктуре различными способами. Это руководство содержит основные шаги по настройке отправки оповещений по электронной почте.
1. Перейдите в Настройки пользователя > Профиль, откройте вкладку Media и добавьте свой адрес электронной почты.

2. Следуйте руководству по получению уведомления о проблеме.
В следующий раз, когда Zabbix обнаружит проблему, вы должны получить оповещение по электронной почте.
Проверьте вашу конфигурацию
Чтобы проверить вашу конфигурацию, мы можем смоделировать реальную проблему, обновив конфигурацию узла сети в веб-интерфейсе Zabbix.
1. Откройте конфигурацию узла сети вашего веб-сайта в Zabbix.
2. Перейдите на вкладку Macros и выберите Inherited and host macros.
3. Нажмите Change рядом, например, со ранее настроенным значением макроса {$WEBSITE.DOMAIN} и задайте неверное доменное имя (например, /git.zabbix.com/projects/ZBX/repos/zabbix/browse).
4. Нажмите Update, чтобы обновить конфигурацию узла сети.
5. Через несколько мгновений Zabbix обнаружит проблему "Failed to get JSON of the requested website", поскольку не сможет подключиться к указанному веб-сайту. Проблема появится в Monitoring > Problems.

Если настроены оповещения, вы также получите уведомление о проблеме.
6. Верните значение макроса к предыдущему значению, чтобы устранить проблему и продолжить мониторинг веб-сайта.
См. также
- Создание элемента данных - как начать мониторинг дополнительных метрик.
- Эскалации проблем - как создать многошаговые сценарии оповещений (например, сначала отправить сообщение системному администратору, затем, если проблема не решена в течение 45 минут, отправить сообщение менеджеру центра обработки данных).
- Элементы данных Browser - как настроить элементы данных Browser.
- Шаблон Website by Browser - дополнительная информация о шаблоне Website by Browser.