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

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

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

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Введение

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

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

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

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

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

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

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

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

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

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

Самый простой способ подключить сайт к мониторингу - добавить его проверку на уже существующем хосте. В этом подходе есть один большой минус - если вы захотите включить этот мониторинг от другого хоста, или просто перенести на другой сервер, то делать это будет неудобно. Гораздо удобнее мониторинг сайтов и все, что с ним связано, настраивать в отдельном шаблоне. Так что идем в раздел Configuration -> Templates и создаем новый шаблон.

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

Открывается стандартная форма создания шаблона. Вводим название шаблона, где будут настройки мониторинга сайтов, и добавляем его в какую-нибудь группу.

Параметры шаблона

Открываем этот шаблон. Переходим на вкладку Web Scenarios и добавляем новый сценарий для мониторинга сайта.

Создание web сценария мониторинга сайта

Заполняем основные параметры сценария. В качестве названия я обычно указываю адрес сайта. В моем примере это будет github.com. Тут же указываю название приложения для мониторинга сайтов для удобной сортировки итемов, относящихся к сайтам, интервал проверки и число попыток соединения.

Параметры сценария

После этого перехожу на вкладку Steps и добавляю шаг проверки.

Первый шаг мониторинга

Дальше указываю параметры шага.

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

Поясню каждый параметр:

  • Name - имя шага. В данном случае проверяться будет главная страница сайта, поэтому называю шаг index. Это не принципиально, но названия рекомендую давать осмысленные, чтобы потом было удобно оперировать названиями, к примеру, в триггерах.
  • URL - адрес проверяемой страницы.
  • Required string - строка на странице, которую будет искать zabbix. Я взял строку из футера сайта. Если заббикс ее найдет на странице, будет считать, что с сайтом все в порядке. Если нет - выдаст ошибку.
  • Required status codes - требуемый код ответа. Указываю 200. Если заббикс получит какой-то другой код в ответ от web сервера, будет считать, что проверка закончилась неудачей.

После заполнения всех параметров жмем Add, чтобы добавить шаг и далее еще раз Add, чтобы добавить сам сценарий проверки. Должна получиться вот такая картина.

Готовый web сценарий

Простейшая проверка доступности сайта сделана. Дальше нам надо прикрепить этот шаблон к какому-нибудь хосту, чтобы начались реальные проверки. Я прикреплю шаблон к самому zabbix серверу. Для этого идем в Configuration -> Hosts, выбираем Zabbix Server и прикрепляем к нему созданный ранее шаблон.

Включение мониторинг сайта

Ждем несколько минут и идем в раздел Monitoring -> Web смотреть результаты мониторинга сайта github.com.

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

Код ответа 200, искомая строка найдена, что подтверждает Status OK. Тут же графики скорости загрузки сайта и время отклика. Более подробную информацию о мониторинге указанного сайта можно посмотреть в Latest Data.

Latest data для Site Monitoring

Значение параметра Failed step of scenario "github.com" равное 0 означает, что все шаги проверки сайта выполнены без ошибок. Если у вас несколько шагов и какой-то из них завешается ошибкой, тут будет номер этого шага. То есть в общем случае, все, что не 0, это какие-то проблемы. Позже мы это будем использовать в триггере. А пока добавим пару графиков к шаблону, которые потом можно будет использовать в дашбордах.

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

Возвращаемся в наш шаблон и переходим в раздел Graphs. Создаем новый график.

Добавление графика

Добавим график скорости загрузки главной страницы сайта.

Настройки графика

По аналогии можете добавить график времени отклика сайта. Я разу добавил оба эти графика в Screen. Получилось вот так.

Screen для отклика и скорости загрузки сайта

Для более красивых визуализаций лучше использовать Дашборды. Теперь настроим мониторинг сайта с авторизацией.

Мониторинг сайта с авторизацией

Немного усложним задачу. Давайте попробует выполнить авторизацию на сайте и провести мониторинг как самой авторизации, так и закрытой страницы за ней. Я для примера возьму форум centos.org/forums/, авторизуюсь на нем и после авторизации проверю страницу с персональной информацией конкретного пользователя.

Для того, чтобы настроить в zabbix мониторинг сайта с авторизацией, надо правильно сформировать post запрос для этой самой авторизации. Я это делаю следующим образом. Иду на страницу с авторизацией. В данном случае это https://www.centos.org/forums/ucp.php?mode=login, открываю DevTools в Сhrome, вкладку Network. Заполняю поля формы авторизации заведомо неправильными данными, чтобы авторизация завершилась ошибкой. После этой ошибки смотрю заголовки самого первого запроса.

Формирование post запроса

Я нажимаю на view source в разделе Form Data и копирую получившуюся строку. В моем случае она была такая:

username=VladimirZp&password=pass123&redirect=.%2Fucp.php%3Fmode%3Dlogin&sid=70389f827540ef7a1fb7acb4e3bbad12&redirect=index.php&login=Login

Отсюда точно можно убрать параметр redirect. В итоге сохраняю вот такую строку:

username=VladimirZp&password=pass123&sid=70389f827540ef7a1fb7acb4e3bbad12&redirect=index.php&login=Login

Теперь иду в шаблон для мониторинга сайтов и добавляю новый сайт - centos.org. Создаю первый шаг с авторизацией, называю его auth. В нем же указываю post запрос для авторизации.

Настройка мониторинга сайта с авторизацией

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

Пример авторизованной страницы

Следующим шагом делаем проверку строки Private messages на главной странице форума.

Мониторинг внутренней страницы

Шаги выполняются последовательно. На первом шаге мы только авторизовываемся, на втором проверяем страницу, доступную уже после авторизации. Идем в Latest Data и смотрим результат.

Результаты по мониторингу с авторизацией

Оба шага успешно завершены, ошибок нет. Посмотрим раздел Monitoring -> Web.

Скорость доступа и отклик страниц сайта

Здесь тоже все в порядке. Наглядно видно, что процесс авторизации гораздо дольше и медленнее, чем загрузка главной страницы.

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

Давайте настроим уведомления о проблемах на сайте. Я предлагаю 2 типа оповещения:

  1. О низкой скорости доступа к сайту.
  2. О недоступности сайта вообще.

Идем, как обычно в исходный шаблон, на вкладку Triggers и добавляем новый.

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

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

Уведомление о недоступности сайта

Когда идет 0 во всех проверках, все в порядке. Триггер сработает только если все 3 последних проверки не равны нулю. В моем примере Failed step может принимать значение либо 0, либо 1, где 1 это номер сбойного шага. Если у вас шагов несколько, то сбойным может оказаться второй шаг или третий шаг. То есть значение может быть больше 1. Но в любом случае, если последние 3 значения подряд строго не 0, то идет срабатывание триггера. Операция восстановления очень простая. Если последняя проверка без ошибки, то есть код равен 0, то считаем, что сайт уже работает.

Чтобы проверить работу триггера, достаточно на zabbix server в файл /etc/hosts добавить строку:

127.0.0.1 github.com

и подождать 3 минуты, чтобы получились 3 неудачных проверки. После этого вам должно было отправиться уведомление о недоступности сайта. Я получил вот такое:

Уведомление от заббикса о недоступности сайта

Дальше делаем проверку времени ответа сервера. Тут каждый волен настраивать так, как ему кажется более правильным и удобным. Я использую такую схему. Беру среднее время отклика сайта и умножаю его на 3. Далее смотрю последние 7 проверок. Если в 5 проверках среди этих семи были значения выше, чем утроенное среднее время отклика, то считаю, что сайт тормозит и надо слать уведомление. Немного замороченно, но на практике такая схема у меня себя хорошо зарекомендовала без ложных срабатываний. При этом, если возникают реальные проблемы, я их вижу. Рисуем триггер.

Оповещение о тормозах сайта

Условие восстановления - в последних трех запросах два и более были быстрее, чем утроенное среднее время доступа. Текст выражений для копирования:

{Sites Monitoring:web.test.time[github.com,index,resp].count(#7,1.5,"ge")}>4
{Sites Monitoring:web.test.time[github.com,index,resp].count(#3,1.5,"lt")}>1

В выражении 1.5 это время отклика в секундах. Именно в таком виде оно попадает в zabbix сервер. Проверить можно в Latest Data.

Формат данных по отклику сайта в zabbix

В завершении оставляю свой шаблон, который создал для написания статьи. Можете копированием и редактированием приспособить его для своих сайтов. Это быстрее, чем составлять с нуля. Шаблон экспортирован с версии zabbix 4.0 - sites_monitoring.xml

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

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

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

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

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

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

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

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Дополнительные материалы по Zabbix

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Рекомендую полезные материалы по Zabbix:
Настройки системы
  • Установка 4.0
  • Обновление 3.0 -> 3.2
  • Обновление 3.4 -> 4.0
  • Установка Zabbix Proxy
  • Работа на NGINX
Видео и подробное описание установки и настройки Zabbix 4.0, а также установка агентов на linux и windows и подключение их к мониторингу.
Подробное описание обновления системы мониторинга zabbix версии 3.4 до новой версии 4.0.
Пошаговая процедура обновления сервера мониторинга zabbix 2.4 до 3.0. Подробное описание каждого шага с пояснениями и рекомендациями.
Подробное описание установки и настройки zabbix proxy для организации распределенной системы мониторинга. Все показано на примерах.
Подробное описание установки системы мониторинга Zabbix на веб сервер на базе nginx + php-fpm.
Мониторинг служб и сервисов
 
  • Температура процессора
  • Nginx и php-fpm
  • Mysql репликация
  • Службы Linux
  • Рейд mdadm
  • Транки Asterisk
  • Synology
Мониторинг температуры процессора с помощью zabbix на Windows сервере с использованием пользовательских скриптов.
Настройка полноценного мониторинга web сервера nginx и php-fpm в zabbix с помощью скриптов и пользовательских параметров.
Мониторинг репликации mysql с помощью Zabbix. Подробный разбор методики и тестирование работы.
Описание настройки мониторинга tcp служб с помощью zabbix и его инструмента простых проверок (simple checks)
Настройка мониторинга рейда mdadm с помощью zabbix. Подробное пояснение принципа работы и пошаговая инструкция.
Подробное описание мониторинга регистраций транков (trunk) в asterisk с помощью сервера мониторинга zabbix.
Подробная инструкция со скриншотами по настройке мониторинга по snmp дискового хранилища synology с помощью сервера мониторинга zabbix.
Мониторинг различных значений
  • Мониторинг сайта
  • Мониторинг бэкапов
  • Размер бэкапа
  • Делегирование домена
  • Значения из текстового файла
  • Мониторинг логов
Настройка мониторинга web сайта в zabbix. Параметры для наблюдения - доступность сайта, время отклика, скорость доступа к сайту.
Один из способов мониторинга бэкапов с помощью zabbix через проверку даты последнего изменения файла из архивной копии с помощью vfs.file.time.
Подробное описание настройки мониторинга размера бэкапов в Zabbix с помощью внешних скриптов.
Пример настройки мониторинга за временем делегирования домена с помощью Zabbix и внешнего скрипта. Все скрипты и готовый шаблон представлены.
Описание мониторинга лог файлов в zabbix на примере анализа лога программы apcupsd. Отправка оповещений по событиям из лога.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

114 комментариев

  1. Евгений

    что делать если выходит ошибка что сайт даёт отвечает не 200 а 308 ?

  2. Владимир

    Застрял на этом этапе:
    Я нажимаю на view source в разделе Form Data и копирую получившуюся строку. В моем случае она была такая:
    username=VladimirZp&password=pass123&redirect=.%2Fucp.php%3Fmode%3Dlogin&sid=70389f827540ef7a1fb7acb4e3bbad12&redirect=index.php&login=Login
    Отсюда точно можно убрать параметр redirect. В итоге сохраняю вот такую строку:
    username=VladimirZp&password=pass123&sid=70389f827540ef7a1fb7acb4e3bbad12&redirect=index.php&login=Login

    Ну да, у Владимира то глаз намётан. Знает что нужно лишнее отрезать, а нужное добавить))
    У меня не так. Я вот пытаюсь вставить "View Source", который перехватил Google Chrome в шаг веб-сценария авторизации и всё-равно у меня в веб-мониторинге параметр "Failed step of scenario "workout.su-login"" имеет значение 1.

    В качестве "подопытного" следующий ресурс: https://workout.su/ . Там у меня зарегистрирован пользователь.

    "View Source" имеет такой вид: _csrf=NJQqxBodU3vrKEsfQ7nN78zTDUA4sUlgLPi8XSJCNHlQ-m-pLl4HKNNRIF0B4ILfgptqI1_UHit_uvUfcHJjNw%3D%3D&LoginForm%5Busername%5D=Vladimir125&LoginForm%5Bpassword%5D=123pass123&LoginForm%5BrememberMe%5D=0

    Я также пытался избавиться от лишнего и всё равно у меня значение для сценария авторизации 1.
    Если у кого есть какие-то идеи, подскажите, пожалуйста. Буду конечно пытаться решить этот вопрос...

    • Владимир

      Сайт обрезал код, продолжу:
      ...assword%5D=123pass123&LoginForm%5BrememberMe%5D=0

      • Владимир

        Т.к. у меня Zabbix 6.2.2, то проблему удалось решить. А именно:
        Во втором веб-сценарии для аутентификации, есть вкладка "Аутентификация". Выбираем следующее:
        HTTP аутентификация: Простая
        Пользователь: *ваш логин на сайте*
        Пароль: *пароль от логина*

        Далее во вкладке Шаги, в первом шаге "auth" вводится только Имя, URL страницы авторизации и код сотсояния 200.
        Во втором шаге "index" вводится Имя, URL (тут я ввёл ссылку своего профиля), Требуемая строка и код сотсояния 200.

  3. Добрый день использую версию 6 забикса.

    Попробовал Вашу инструкцию по авторизации на сайте почему-то нивкакую не хочет работать. (получаю ошибку - Ошибка: response code "403" did not match any of the required status codes "200")

    также я пробовал использовать уже встроенное меню с авторизацией "Аутентификация" в забиксе также получаю ошибку.

    Есть идеи по данной ошибке?

    • Ошибка: "response code "403" did not match any of the required status codes "200" явно говорит о том, что Zabbix получает такой ответ, вместо настроенного 200. Почему так, я не знаю. Надо разбираться с сайтом.

  4. Андрей

    Коллеги, нигде не могу найти ни по-русски, ни по-английски как воспользоваться веб-мониторингом в Zabbix с эмуляцией кликов мыши. Хочу замерить не только скорость загрузки страницы и логина, но и пройти по пунктам меню и замерить скорость загрузки. Прямые ссылки использовать невозможно, поскольку JS на сайте используется.

    В помощи самого Заббикса значится такая возможность (https://www.zabbix.com/documentation/5.2/ru/manual/web_monitoring): "Zabbix может также проверять содержит ли полученная HTML страница заданную строку. Он может выполнить эмуляцию входа и следовать пути, эмулируя нажатия мышкой на странице".

    И больше ни слова: как настроить, как воспользоваться? Я чего-то не понимаю.

    • В реальности он мышкой не умеет кликать, как пользователь. Возможно это нюансы перевода или интерпретация. Zabbix может ходить по ссылкам или авторизовываться через формы. Но клики мышки эмулировать он не умеет. Нужно искать другие инструменты, которые могут это делать и выгружать полученные метрики. А потом уже передавать их в Zabbix. В новых релизах обещали обновить и переделать полностью функционал мониторинга сайтов. Может там это и будет. Но пока таких обновлений нет и в 6.4 не предвидится. Так что как ещё минимум год-полтора их ждать не приходится.

      • Андрей

        Спасибо за инфо!
        Да в английской версии то же самое написано: "Zabbix can also check if a retrieved HTML page contains a pre-defined string. It can execute a simulated login and follow a path of simulated mouse clicks on the page." Здесь наверное черт скрывается в значении слова follow - будто какой-то другой инструмент реализует симуляцию кликов мыши, а Заббикс за этим "следует"... Короче, ерунду написали в хелпе.

        А ходить по ссылкам - это как делать, где почитать?

        • Я условно сказал, ходить по ссылкам. Проверка может состоять из множества шагов, где в каждом шаге могут быть разные ссылки. Я обычно делаю проверку на разные страницы - с закэшированной статикой и на динамический контент (поиск, форум и т.д.)

          • Андрей

            Я имел в виду возможность Заббиксу активное действие автоматически выполнить. Получается он не умеет делать никакого активного действия, ни эмулировать клик мышью, ни эмулировать переход по ссылке при известном ее адресе и имени. Верно?

  5. Добрый день! Подскажите как узнать что вводить в POST поля, как понимаю сайты написаны на C# или что та в этом роде. То что показано на примере оч сильно отличается на тех что пытаюсь поставить сам

  6. Аноним

    Добрый день, подскажите плиз а можно ли настроить шаблон для мониторинга Cosul сервиса

    • Спасибо за статью. Немного отличаются формулы в Zabbix 6.0
      Problem: avg(/Sites monitoring/web.test.fail[lytkins.ru],3)>=1
      Recovery: avg(/Sites monitoring/web.test.fail[lytkins.ru],3)=0

  7. Аноним

    Здравствуйте!
    Нужно мониторить доступность этих сайтов:
    _bankrot.fedresurs.ru
    и
    _bankruptcy.kommersant.ru/search/index.php

    Чтобы я не указывал в требуемой строке zabbix это не находит
    Если я в этом же сценарии укажу url гитхаба и например требуемую строку "2022 GitHub, Inc.", то сценарий работает.
    Как понять, что zabbix может найти на странице
    zabbix 5.4

    • Посмотрел первый сайт. Открыл html код, там почти ничего нет, только несколько js скриптов. Zabbix видит то же самое, что и вы при просмотре html кода. Вот и ориентируйтесь на эту информацию. Я не понял, как работают эти сайты. Весь контент получается грузится через js скрипт. Zabbix не парсит js скрипты.

  8. Здравствуйте спасибо за хорошую статью, прочитал с удовольствием, но возникло пару вопросов.
    1) Возможно ли настроить авторизацию через заббикс на вэб страницу не использую raw post? Если да, то как?
    2) Я следую вашим инструкциям, но на моменте где вы в коде страницы берете ссылку в разделе "Formdata - vieiw source" у меня такой раздел вовсе отсутствует, причем я проверял и в мазиле и в гугле, и даже на сам centos заходил тоже.
    Буду рад любой помощи, спасибо

    • 1. Мне неизвестные такие способы. В следующей версии 6.0 обещали обновить мониторинг web сайтов. Возможно что-то появится на эту тему.
      2. Значит авторизация работает не через подобную форму. Что с эти делать - не знаю.

      В Zabbix слабо развит продвинутый мониторинг сайтов. Они знают об этой проблеме и будут развивать данное направление. Уже в планах всё это есть. Текущий веб мониторинг был написан лет 5-7 назад и с тех пор не менялся.

  9. Дмитрий

    В версии Zabbix 5.4 триггер Response time too slow пишется так (другой синтаксис):
    count(/Template Site Monitoring by Zabbix Web monitoring/web.test.time[Site Monitoring,Check Front Page Available,resp],#7,"ge","1.5")>4
    count(/Template Site Monitoring by Zabbix Web monitoring/web.test.time[Site Monitoring,Check Front Page Available,resp],#3,"lt","1.5")>1

    • Владимир

      В версии Zabbix 6.2.2 триггер Response time too slow сохранился так:

      Выражение проблемы: count(/Sites Monitoring/web.test.rspcode[workout.su,index],#7,"ge","1.5")>4
      Выражение восстановления: count(/Sites Monitoring/web.test.rspcode[workout.su,index],#3,"lt","1.5")>1

      Так триггер сохранился (в отличии от предыдущих попыток, в результате которых Zabbix ругался на параметр ge). Однако сработку этого триггера я не проверял, так что не ручаюсь)

  10. Всем привет.
    На сколько я знаю zabbix мониторит сайты только на стандартных портах 80,443.
    Кто может подсказать, как настроить мониторинг доступности сайта если сайт на не стандартном порту например site.com:8080 ?

    • Ни разу не пробовал указывать нестандартные порты. Но разве если указать site.com:8080 он не будет работать? По идее должен.

  11. Сергей

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

    • Можно сделать почтовый алиас, а в него прописать всех необходимых получателей. Тогда в Zabbix вообще ничего настраивать не надо.

      • Сергей

        Да, но когда создаем действие на триггер, нужно указать в операции, кому отправляем сообщение.
        Можно выбрать юзера, группу юзеров. Выбрать через что отправлять.
        Но не вижу, как создать правило, по которому отправка сообщения пойдет просто на ящик (ну или на альяс)
        Или не туда смотрю.

        • Сергей

          Понятно, что можно выкрутится по разному.
          Сделать пересылку из своего почтового ящика по определенному правилу, например.

        • Одного пользователя придётся так или иначе указать, к которому привязан почтовый ящик. Я только не понял, а в чем проблема добавить пользователя в систему и указать ему какой угодно ящик? И сделать этих пользователей столько, сколько надо? Можно группу объединить для конкретного триггера.

          • Сергей

            Ну да, я вижу, что так можно сделать.
            Но подумал, что может я чего-то упускаю?
            Пользователя сделать не проблема, но если его можно не делать - то лучше не делать )

  12. Сергей

    А если добавить узел сети и указать dns сайта и к нему добавить уже и веб сценарий и триггер, то будет работать?
    Или нужно обязательно добавлять веб сценарий к узлу сети, на котором работает агент?

  13. По этой статье делал, все получилось ок, но вопрос, как сделать чтобы был еще один график в котором были данные по ответам сервера (200, 404, 500) ?

    • Такого графика нет. Да и как он должен рисоваться? Это же будет просто прямая линия, так как там 99% времени будет код 200.

      • Возможно, но можно будет сделать круговой график и в % увидеть сколько каких ответов.

  14. Максим

    Добрый день.
    Как настроить триггер, чтобы уведомление о том, что сайт стал доступен отправлялось не сразу, а через заданное время? Например, чтобы сайт был доступен хотя бы 5 мин.

    • В отдельной статье рассказываю - https://serveradmin.ru/nastroyka-otlozhennyih-uvedomleniy-v-zabbix/

      • Максим

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

        • Аноним

          Можно задать выражение для решения проблемы и указать там этот интервал 5 минут. То есть только если последние 5 минут сайт доступен - проблема закроется. Настраивается это в настройках триггера

  15. Дмитрий

    Доброго времени суток
    Я сделал все по инструкции, но у меня нету самой вкладки Monitoring -> Web

    • В новой версии zabbix 5+ этот раздел переехал в Мониторинг -> Узлы сети. Выбираем узел, на котором настроили web мониторинг и выбираем его в самом правом, последнем столбце.

  16. Александр

    А в 5 версии нельзя из telegram передавать команды в забикс?
    Ну типа сделай мне iisreset такого то сайта.
    Что то найти ничего подобного не могу.

    • Я такого не видел. Это надо бота писать, который через zabbix api будет взаимодействовать с сервером.

      • Александр

        Вот и я так думаю, вдруг что то подобное видели, но все равно спасибо за информацию.

  17. Дмитрий

    А если росто нет пункта Form Data, то поле где вы смотрели как составить POST-запрос, что делать?

    • Не знаю. Тут нет универсального совета, как поступить. Нужно с каждым конкретным сайтом разбираться. Где-то вообще подобное воспроизвести не получится.

  18. На четвертом скриншоте вашей статьи есть "Headers"
    https://i.imgur.com/bflURIj.png
    Как можно мониторить изменения содержимого страници с помощью Zabbix?
    Я насколько понял - можно с помощью Body and headers.

  19. А есть где-то статья: как мониторить head и body?

    • Не понял, что значит мониторить head и body?

      • На четвертом скриншоте вашей статьи есть "Headers"
        https://i.imgur.com/bflURIj.png
        Как можно мониторить изменения содержимого страници с помощью Zabbix?
        Я насколько понял - можно с помощью Body and headers.

        • Нет, headers это заголовки запроса. То есть в Zabbix можно указать какие-то заголовки, например, с токеном авторизации. Содержимое страницы и так мониторится в моем примере. Я же указываю конкретную текстовую строку, наличие которой проверяется на сайте. Если этой строки нет, срабатывает триггер.

  20. Сделал проверку сайта в 3 этапа:
    1. auth
    2. проверка данных
    3. log auth

    И если на 2-м этапе у меня ошибка то 3-й не выполняется.
    А мне нужно вылогиниватся, поскольку есть ограничение по сессиям. Как это реализовать?

  21. Андрей

    А есть ли возможность засунуть код ответа в сообщение отправляемое на почту?

    • Так сходу не скажу, не исследовал. Но в целом, это реализуемо через триггеры. Можно как минимум на разные коды ответов сделать триггеры с отправкой уведомлений.

  22. Дмитрий

    А если не хочется возится с zabbix или нет лишних ресурсов, можно воспользоваться сервисами, благо их много в последнее время стало.
    Я пользую effro.ru там бесплатных 10 проверок, мне этого хватает на 3 сайта и сервак.

  23. Шаг "******" [1 из 1] завершен с ошибкой: required pattern "ОТКРЫТИЕ СЕРВЕРА" was not found on **********
    данная ошибка не дает покоя настроенно все как у вас в мануале версия 4.4 , данный сайт работает через cloud flare , ip сервера забикс добавлен в вайтлист , что может быть еще?(

    • Может с кодировками что-то, поэтому не получается проверить строку. Попробуйте какое-то число или единичное английское слово, которое есть на странице.

  24. Cпасибо большое за проделанный труд. Также порекомендовал бы добавить триггер на ' Failed step of scenario "". ' Чтобы мы дополнительно к мониторингу 200 ошибки (ибо не отработает на ошибку Error: required pattern ... was not found on ...) мониторили и статус фразы в "Required string" - это актуально для статусных страниц, например https://status.gitlab.com/ и зажигать триггер когда фраза "All Systems Operational" не найдена.

    • Почему не отработает триггер? Текущий триггер сработает, если проверка по строке не будет завершена успешна. Значение web.test.fail станет больше 0 при ошибке на любом из шагов. Если нужны подробности по конкретному шагу, тогда надо триггеры делать уже на сами шаги.

  25. Гораздо удобнее все это проделать с системным макросом {HOST.HOST}
    и прописать его везде вместо доменного имени там где вписан github
    Далее создаем новый Host с названием домена и добавляем к нему этот шаблон.
    И все))) Теперь на каждуй веб проверку просто создаем Host и добавляем шаблон.
    А то каждый раз руками безссмысленно переписывать во всех частях шаблона имя домена.

    Так же на всякий случай может пригодиться "видимое имя хоста" Visible name , системный макрос {HOST.NAME}

    • Крутая идея, спасибо за информацию. Я не догадался так поступить :)

    • Аноним

      А можно подробнее как это сделать?

      • В шаблоне везде, где явно указан адрес сайта github.com надо написать {HOST.HOST}. Это встроенный макрос хоста zabbix, который автоматически подставляет имя хоста. Таким образом шаблон становится универсальным. Если создать новый хост с именем site.ru и прикрепить к нему шаблон с макросом, везде, где указано {HOST.HOST} будет подставлено site.ru

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

        • Приветствую, Владимир!
          Возникла идея настроить универсальный шаблон проверки сайтов, как подсказано, через {HOST.HOST}
          Пока не понял, если я буду в шаблоне задействовать Required status codes, могу ли я потом в настройках хоста, к которому привязан шаблон добавить проверку на Required string по аналогии с наследуемыми и вновь добавленными макросами?

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

    • Попробовал переделать, работает. Спасибо за идею.

  26. Приветствую.
    Какое-то странное использование шаблона. Именно как шаблон он не используется. С таким же успехом можно просто навесить веб-сценарии на узел Zabbix Server.

    • Это да, но если захочется перенести проверки на другой сервер или кому-то передать, то лучше, если они будут в виде шаблона. Просто удобнее.

  27. Добрый день,

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

    Спасибо большое!
    Иван

  28. Андрей

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

    • Надо смотреть, что в триггерах и последних данных мониторинга. Возможно где-то ошибка. Смотрите после срабатывания триггера в Latest Data, что там по шагам. Были реально ошибки или нет.

      • Андрей

        Триггеры настроены также как в инструкции, а в Latest Data
        Последняя проверка Последнее значение
        03.04.2019 10:25:57 47.87 KBps
        03.04.2019 10:25:57 47.87 KBps
        03.04.2019 10:25:57 0
        03.04.2019 10:25:57 200
        03.04.2019 10:25:57 916.2мс
        03.04.2019 10:21:48 response code "502" did not match any of the required status codes "200"

        • Вот, видно, что 10:21:48 сайт отвечал 502 кодом. Что в шаге настроено - не знаю, но если стоит проверка какой-то фразы, то она 100% завершилась неудачей, потому что 502 ошибка не грузит содержимое сайта. Мне так трудно вам что-то посоветовать. В статье есть вся информация, чтобы разобраться самостоятельно.

  29. Полностью обновил и переработал статью.

  30. Здравствуйте.имеется целый влан с камерами, по LLD заведены в заббикс, необходимо проверять не только их доступность, но и отдачу страницы авторизации.как бы это лучше реализовать?

    • Как я понимаю, либо вручную через web проверки, либо добавлять их автоматически через zabbix api. Насколько я понял, web проверки через lld делать нельзя. Могу, конечно, ошибаться, но когда мне нужно было сделать примерно то же самое, я не нашел другого варианта. Как раз увидел информацию о запросах на автоматизацию web проверок. Разработчики только обещали это реализовать. В последних обновлениях я не видел информации, что это сделано.

  31. Спасибо за статью. Единственное, как я понял триггер должен быть немного другой. Если я правильно нашел в документации https://www.zabbix.com/documentation/4.0/ru/manual/config/triggers/expression

    Функция last использует другой смысл для значений, когда начинается с решетки - она дает выбрать n-ое предыдущее значение, так что с учетом значений 3, 7, 2, 6, 5 (от наиболее нового до наиболее старого), при last(#2) вернется 7 и при last(#5) вернется 5.

    Т.е. скорей всего триггер должен быть вида avg(#3)=1 - среднее значение последних трех результатов равно 1 (все 3 значения должны придти с ошибкой).

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

  32. Александр

    Добрый день.
    Не могу настроить web мониторинг железки с авторизацией.
    Не могли бы вы написать статью с примерами мониторинга закрытой части сайта или каких нибудь устройств с веб интерфейсом и прохождением авторизации.
    SNMP у железки нет, ping'a не достаточно, web мониторинг стартовой страницы работает, но требуемые поля для мониторинга отображаются только после авторизации.

    • Если не получается получать данные напрямую через заббикс, попробуйте какие-то скрипты написать на bash/python, которые будут парсить нужные значения и передавать их в zabbix. К сожалению, конкретных примеров именно по парсингу данных из закрытой части http сайта у меня нет.

      • Аноним

        Конкретно у меня проблема скорее в том, что я не могу составить правильный post запрос на авторизацию.

        сообщения вида response code "400" did not match any of the required status codes "200"

        required pattern "Статус" was not found on http://192.168.12.104

        • Аноним

          Допустим мне или кому либо надо смотреть статус какого-нибудь устройства с web интерфейсом (наличие бумаги в термопринтере или статус линии в телефонном шлюзе) который их отображает только после ввода логина и пароля.

  33. Алексей

    Добрый день! Огромное спасибо за труды.
    Заббикс 4.0. Делал все четко по инструкции, ничего не пропуская. В итоге и Яндекс и нужный сайт в мониторинге выпадают в "ПРОБЛЕМА".
    Не подскажите, вроде бы на фаерволле не надо никаких дополнительных правил прописывать? А так графики со скоростью и доступом показывает корректно и информация поступает. Не пойму, в чем может быть дело.

  34. Добрый день. Спасибо за статью, настроил свои сайты на мониторинг по ней. Но с одним сайтом беда. Любое слово которое я пытаюсь найти на нём, просто не обнаруживается. Пытался найти как текст между тегами. Так и какие то имена типа по слову Привет.
    Какие еще варианты бывают? На форуме Забикса погуглил, говорят сайты с каким то Java кодом не показывают текст. Но тут обычный сайт на WP

    • Возможно что-то с кодировкой не так, поэтому не работает. Как простое решение могу посоветовать взять какие-то цифры, вместо строк.

      • К сожалению по ціфрам та же лажа(
        Например вконце сайта стоит © 2018, пробую искать по слову "2018"
        Шаг "PP" [1 из 1] завершен с ошибкой: required pattern "2018" was not found

  35. Катерина

    Добрый день! Скажите можно ли проверить доступность по двум разным фразам одновременно, например или первая или вторая, соответственно если находит одну из них то все в порядке. Спасибо!

    • Можно. Вы же триггер будете сами настраивать. Там можно поставить условие ИЛИ по нескольким итемам. Смотрите подробности в документации по созданию триггеров - https://www.zabbix.com/documentation/3.4/ru/manual/config/triggers/expression

      • Катерина

        (фраза) or (фраза) ?
        Не будет ли "or" восприниматься как часть фразы которую он ищет?

        • Вы не поняли, то, что я написал. Нужно делать отдельно проверку по каждой из фраз. Затем в триггере сделать условие срабатывания, если обе проверки с разными фразами закончились ошибкой. Как раз в триггере и будет условие, что первая и вторая проверка закончились ошибкой. Я в предыдущем ответе ошибся. Проверка в триггере будет не ИЛИ, а И. То есть оба шага с ошибкой, тогда срабатываем.

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

          • Я не совсем правильно выразилась. Мне не нужны тригеры как таковые. У Забикса есть на панели вывод "WEB monitoring" если я установлю две проверки по каждой фразе то общее число веб проверок будет показывать в два раза больше серверов. Меня интересовало, можно ли установить условие проверки именно в текстовую строку, которая запрашивает фразу поиска: "В строку Required string вводим какое-нибудь слово или фразу, которая присутствует на проверяемой странице. По наличию этой фразы система будет принимать решение о доступности сайта." У меня две версии по сути одинаковых сайтов, только вот страница логина у них отличается. Хотелось бы что бы сразу при веб проверке она видела обе лог страницы. Спасибо за помощь!

  36. Всё настроил, всё работает, но почему-то не срабатывает тригер по коду ошибки {test:web.test.rspcode[testing_asofts,test_asofts].last(#1)}200 , по failed step шлет почту, а по коду - нет

  37. Подскажите, пожалуйста, как проверить что на сайте 502 ошибка (как проверить что сайт полностью недоступен, я знаю)?

    • В заббиксе можно указать в одном из шагов по проверке сайта поиск числа 502. Если такое число найдено, то шаг будет выполнен успешно, можно отправлять алерт по этому событию.

      • Вы имеете ввиду при создании Web сценария на вкладке Steps в поле Required status codes указать 502?

  38. Здравствуйте, Благодарю за Ваши статьи! Полностью настроил zabbix по Вашим мануалам!
    Конкретно по данной статье есть вопрос, как настроить уведомление когда сайт вновь стал доступен, мне при его доступности приходит сообщение от того же триггера с подписью сайт не доступен.

  39. Большое спасибо и респект автору за хорошие статьи, в которых материал изложен просто и доступно для понимания новичков в администрировании, к которым принадлежу пока и я.
    Но вот, что странно для меня в этой статье. При внесении в файл hosts строки: «127.0.0.1 yandex.ru» - Вы всего лишь ставите в соответствие доменному имени «yandex.ru» IP-адрес 127.0.0.1, вместо его реального IP(!!!). То есть доступа к содержимому реального сайта Вы не получаете, но при этом ping и nslookup данного доменного имени будут показывать что доступ к сайту есть (будут показывать его IP-адрес, как 127.0.0.1). И это нормально, ведь так и должно быть. Поэтому и мониторинг Zabbix в данном случае будет показывать, что доступ к сайту у него есть, ведь ему не нужно содержимое сайта, а использует при этом что-то вроде команды «ping».
    Думаю, правильнее было бы заблокировать доступ к сайту средствами фаерфола.

    • Нет, вы не поняли суть мониторинга доступности сайта. Заббикс сервер ищет указанную строку на сайте и если ее не находит, то срабатывает триггер недоступности. А данном случае изменения файла hosts достаточно для проверки мониторинга. Конечно, лучше заблокировать фаерволом, это более реальный тест будет. С hosts просто проще, а проверить работу все равно можно.

  40. Приветствую! Возник вопрос по мониторингу защищеной части сайта. Сайт работает по https. Пробывал все по гайду с zabbix.com через веб-сценарии, но всё без результатно, на втором шаге нет обращений на сервер для входа. Возмно есть ньюанс с https ? (в гайде пример с http)

  41. Пример, есть задача: нужно мониторить два ip адреса (потери, пинг) , желательно на одном графике.
    Я захожу в настройки "Узлы сети" - тут нужно добавлять два узла с разными ip или можно один только в "Интерфейсы " указывать два айпи ?

    Спасибо

    • Два разных узла. Потом создать график на любом узле и добавить информацию с обоих узлов.

  42. Сергей

    Да, всё получилось. Спасибо
    Возможно ли выводить на одном графике доступность (ping ) двух и более ресурсов ?

    • Конечно. Графики и комплексные экраны можно создавать какие угодно и добавлять на них элементы данных с различных хостов.

  43. Сергей

    Спасибо за статью. Установил всё получилось. Не могу сделать графики доступности (пинг, задержки) имеено ip адреса а не имени сайта. Можете намекнуть куда смотреть ?

    • Не совсем понял, в чем проблема. Если сайт по ip адресу отвечает так же, как по имени сайта, то мониторинг настраивается аналогично. А если есть просто ip адрес, который нужно пинговать и отслеживать врем отклика, то можно добавить хост, назвав его как угодно, указать ему нужный ip адрес и применить к этому хосту шаблон icmp ping.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar