Решение проблемы

Мониторинг web сайта в Zabbix

Продолжаю свой цикл статей по настройке системы мониторинга на базе популярного бесплатного продукта. В этот раз мы подробно рассмотрим вопрос настройки мониторинга web сайта в подготовленном ранее zabbix сервере. В качестве примера возьмем какой-нибудь сторонний ресурс и проверим на нем предложенный стандартный функционал.

Содержание:

  • 1 Введение
  • 2 Добавление web сайта к мониторингу
  • 3 Создание сценариев проверки сайта
  • 4 Настройка графиков мониторинга веб сайта
  • 5 Оповещение о недоступности сайта
  • 6 Заключение
  • 7 Дополнительные материалы по Zabbix

Введение

Мониторинг web сайта в Zabbix

Для мониторинга веб сайта мы будем использовать стандартный функционал zabbix. Вот параметры, за которыми будем наблюдать:

  • доступность сайта
  • время ответа сайта в миллисекундах
  • скорость доступа к сайту

Для этого мы выполним следующую последовательность действий:

  1. Добавим наблюдаемый сайт в систему.
  2. Настроим сценарии проверки.
  3. Создадим графики с данными.
  4. Добавим триггер на проверку доступность сайта.

Приступаем к настройке мониторинга. Использовать будем только стандартный функционал, доступный после установки. Никаких дополнительных пользовательских параметров или работы скриптов не будет.

Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:

  1. Установка CentOS 7.
  2. Настройка CentOS 7.
  3. Установка и настройка zabbix сервера.

То же самое на Debian 9, если предпочитаете его:

  1. Установка Debian 9.
  2. Базовая настройка Debian 9.
  3. Установка и настройка zabbix на debian.

Добавление web сайта к мониторингу

Добавление сайта принципиально не отличается от добавления любого другого хоста. Идем в Configuration -> Hosts и жмем Create host:

добавление в zabbix сайта для мониторинга

Открывается стандартная форма. Вводим название хоста. Выбираем любую группу, для удобства лучше создать отдельную для сайтов. У меня ее нет, я просто выбираю группу Templates. Для примера будем мониторить сайт yandex.ru. В поле DNS name пишем yandex.ru, все остальное оставляем как есть и жмем Add:

заполнение параметров сайта

В списке хостов появился новый с именем Yandex.ru.

Создание сценариев проверки сайта

Мониторинг web сайта в Zabbix

Теперь нам необходимо настроить непосредственно сам мониторинг сайта. Для этого на той же странице со списком хостов, напротив нашего нового нажимаем на ссылку Web:

добавление сценария проверки сайта

В разделе web сценариев у нас пусто, создаем новый сценарий проверки, нажав на Create scenario:

создание сценария проверки сайта

На первой вкладке Scenario заполняем необходимые поля:

  • Имя сценария.
  • Интервал проверки.
  • Агент, от имени которого будет выполняться проверка:

настройка сценария мониторинга сайта

Переходим на вкладку Steps и нажимаем там на Add. Откроется форма, заполняем ее. Указываем:

  • Имя шага сценария.
  • Адрес страницы для проверки.
  • В строку Required string вводим какое-нибудь слово или фразу, которая присутствует на проверяемой странице. По наличию этой фразы система будет принимать решение о доступности сайта. Возьмем для примера слово Яндекс, которое присутствует в правом нижнем углу сайта.
  • Указываем необходимый код ответа сервера, который будет означать, что все в порядке — 200:

добавление шагов мониторинга сайта

Нажимаем Update. Шаг сценария добавлен, теперь нажимаем Update еще раз на странице самого сценария, чтобы добавить его к сайту:

прикрепление сценария к хосту

Теперь нужно подождать пару минут, чтобы стали поступать новые данные проверки. Посмотреть их, как обычно, можно в разделе Monitoring -> Latest data. Выбираем наш хост и проверяем данные мониторинга:

мониторинг сайта в zabbix

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

Настройка графиков мониторинга веб сайта

Тут нет ничего нового, все, как обычно. Идем снова в Configuration -> Hosts и жмем Graphs напротив нашего хоста:

добавление графика мониторинга сайта

Нажимаем на Create graph:

создание графика мониторинга сайта

И заполняем необходимые поля:

параметры графика мониторинга сайта

Нажимаем на Add и добавляем источник данных:

добавление источника данных к графику в zabbix

Можете сами поиграться с параметрами графика и выбрать то, что вам больше подходит. Я оставлю все стандартное, хотя нужные мне графики я аккуратно рисую, чтобы было более наглядно и удобно пользоваться. Должно получиться примерно так:

просмотр графика в zabbix

Посмотреть на график можно тут же на вкладке Prewiew. Когда закончите с настройкой, нажимаете Add.

По аналогии добавляете график скорости доступа к сайту, выбирая в качестве источника данных Download speed for scenario «yandex.ru»:

создание графика скорости доступа к сайту

Полезного тут больше нечего рисовать. Двух графиков достаточно.

Оповещение о недоступности сайта

Мониторинг web сайта в Zabbix

Теперь добавим триггер, который будет срабатывать при недоступности сайта. Чтобы получать оповещения об этом событии, их необходимо настроить. Как настроить оповещения zabbix на email я рассказывал отдельно. Рекомендую ознакомиться и сделать соответствующие настройки. Эту тему я не буду сейчас поднимать, переходим сразу к реализации.

Опять идем в раздел Configuration -> Hosts и нажимаем на Triggers напротив нашего хоста. Открывается стандартная страница с пустым списком, нажимаем справа Create trigger:

добавление триггера в zabbix

Заполняем необходимые поля:

создание триггера в заббикс

И жмем напротив Expression на кнопку Add. Открывается форма для описания триггера. Заполняем, как показано на картинке:

параметры триггера в zabbix

Эти параметры означают, что если в последних трех проверках значение параметра web.test.fail не будет равно 0, что означает доступность сайта, то срабатывает триггер. Проверяем данные и жмем Add:

добавление триггера

Теперь нам нужно проверить работу триггера. Для этого надо сделать сайт yandex.ru недоступным. Я просто зайду на сервер и добавлю в файл hosts строку:

127.0.0.1 yandex.ru

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

Странно, но способ с hosts у меня не сработал. Не знаю почему, не стал долго разбираться. С консоли сервера я не мог скачать страничку яндекса, но заббикс каким-то образом это делал. Не помог даже его перезапуск. В итоге пришлось просто на время отключить dns сервер, чтобы добиться срабатывания триггера.

Ждем прохождения трех проверок и проверяем. Для этого открываем Dashboard и смотрим на статусы хостов:

предупреждение о недоступности сайта

Все в порядке, триггер сработал. Я включил обратно dns сервер, и стал ждать следующего срабатывания с информацией о восстановлении соединения. Все в порядке, триггер сработал еще раз и мне прилетело на почту об этом уведомление:

оповещение о недоступности сайта

Вот и все, мониторинг веб сайта работает, параметры доступа фиксируются, оповещение о доступности сайта настроено. Для полноты картины можно создать Screen с выводом всех необходимых параметров на один экран. Его настройки уже будут зависеть от конкретной ситуации и тех данных, которыми вы располагаете. К примеру, если у вас настроен мониторинг веб сервера, то можно разместить рядом графики его загрузки и параметры доступа к сайту. Туда же можно добавить загрузку самого сервера по процессору и памяти и вывести график использования сетевого интерфейса.

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

Более подробно о мониторинге за временем отклика сайта читайте в отдельной статье на этот счет. Там описана теория процесса и практические рекомендации, вместе с готовым триггером.

Заключение

Добавлю несколько слов, как можно использовать данный мониторинг web сайта. У меня было два хостинга и хотелось выбрать один более быстрый. Загрузка самого сервера по железу была настолько низка, что ее можно было вообще не брать в расчет. Более важным параметром было именно время отклика сервера и скорость доступа к нему. Я запустил сайт на обоих серверах и настроил мониторинг. По его параметрам выбрал более быстрый сервер.

Конечно, тут нужно понимать, что данные подобного мониторинга очень условны и зависят о того, где располагается сам сервер заббикса. Возможна ситуация, когда мониторинг всех сайтов будет показывать примерно одни и те же цифры из-за ограничения самого сервера мониторинга. Нужно иметь это ввиду. Еще достаточно часто при проверке времени отклика сайта появляются большие провалы по времени до 5-10-15 секунд. Это сильно влияет на среднее время доступа. Возникают эти провалы из-за временных сетевых проблем не обязательно на самом сайте. Это тоже нужно учитывать при анализе полученных данных.

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


СМОТРИ ТАКЖЕ