8 Мониторинг веб-сайтов с помощью элементов данных браузера

Введение

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

Для кого предназначено это руководство

Это руководство предназначено для новых пользователей Zabbix и содержит минимальный набор шагов, необходимых для включения базового мониторинга веб-сайтов с помощью элементов данных Browser. Если вам нужны возможности глубокой настройки или более расширенная конфигурация, см. страницу Элементы данных Browser или раздел Конфигурация руководства 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.

Настройка сервера Zabbix

Элементы данных браузера выполняются и обрабатываются процессами Zabbix browser poller, которые необходимо включить, настроив параметр конфигурации сервера StartBrowserPollers. Дополнительно параметр WebDriverURL должен указывать ранее настроенную конечную точку веб-тестирования.

По умолчанию параметр StartBrowserPollers имеет значение 1, поэтому вам нужно только указать конечную точку веб-тестирования.

1. Откройте файл конфигурации сервера Zabbix.

vi /etc/zabbix/zabbix_server.conf

2. Найдите и задайте параметр WebDriverURL в файле конфигурации сервера Zabbix:

### Option: WebDriverURL
#   HTTP[S] URL интерфейса WebDriver. Например, http://localhost:4444 используется с автономным сервером Selenium WebDriver.
#
# 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 уже отслеживает указанный вами веб-сайт.

Чтобы просмотреть собранные метрики, перейдите в раздел меню Мониторинг → Узлы сети и нажмите Панели рядом с узлом сети.

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

Настройка оповещений о проблемах

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

1. Перейдите в Настройки пользователя → Профиль, откройте вкладку Способы оповещения и добавьте свой адрес электронной почты.

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.