Продолжаю свой цикл статей по настройке системы мониторинга на базе популярного бесплатного продукта. В этот раз мы подробно рассмотрим вопрос настройки мониторинга web сайта в подготовленном ранее zabbix сервере. В качестве примера возьмем какой-нибудь сторонний ресурс и проверим на нем предложенный стандартный функционал.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Содержание:
Введение
Для мониторинга веб сайта мы будем использовать стандартный функционал zabbix. Вот параметры, за которыми будем наблюдать:
- доступность сайта
- время ответа сайта в миллисекундах
- скорость доступа к сайту
- работа авторизации на сайте
Для этого мы выполним следующую последовательность действий:
- Создадим шаблон для мониторинга за сайтами.
- Настроим сценарии проверки.
- Создадим графики с данными.
- Добавим триггеры на проверку доступности и скорости загрузки сайта.
Приступаем к настройке мониторинга. Использовать будем только стандартный функционал, доступный после установки. Никаких дополнительных пользовательских параметров или работы скриптов не будет.
Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:
То же самое на Debian 10, если предпочитаете его:
Добавление web сайта к мониторингу
Самый простой способ подключить сайт к мониторингу - добавить его проверку на уже существующем хосте. В этом подходе есть один большой минус - если вы захотите включить этот мониторинг от другого хоста, или просто перенести на другой сервер, то делать это будет неудобно. Гораздо удобнее мониторинг сайтов и все, что с ним связано, настраивать в отдельном шаблоне. Так что идем в раздел Configuration -> Templates и создаем новый шаблон.
Открывается стандартная форма создания шаблона. Вводим название шаблона, где будут настройки мониторинга сайтов, и добавляем его в какую-нибудь группу.
Открываем этот шаблон. Переходим на вкладку Web Scenarios и добавляем новый сценарий для мониторинга сайта.
Заполняем основные параметры сценария. В качестве названия я обычно указываю адрес сайта. В моем примере это будет github.com. Тут же указываю название приложения для мониторинга сайтов для удобной сортировки итемов, относящихся к сайтам, интервал проверки и число попыток соединения.
После этого перехожу на вкладку Steps и добавляю шаг проверки.
Дальше указываю параметры шага.
Поясню каждый параметр:
- Name - имя шага. В данном случае проверяться будет главная страница сайта, поэтому называю шаг index. Это не принципиально, но названия рекомендую давать осмысленные, чтобы потом было удобно оперировать названиями, к примеру, в триггерах.
- URL - адрес проверяемой страницы.
- Required string - строка на странице, которую будет искать zabbix. Я взял строку из футера сайта. Если заббикс ее найдет на странице, будет считать, что с сайтом все в порядке. Если нет - выдаст ошибку.
- Required status codes - требуемый код ответа. Указываю 200. Если заббикс получит какой-то другой код в ответ от web сервера, будет считать, что проверка закончилась неудачей.
После заполнения всех параметров жмем Add, чтобы добавить шаг и далее еще раз Add, чтобы добавить сам сценарий проверки. Должна получиться вот такая картина.
Простейшая проверка доступности сайта сделана. Дальше нам надо прикрепить этот шаблон к какому-нибудь хосту, чтобы начались реальные проверки. Я прикреплю шаблон к самому zabbix серверу. Для этого идем в Configuration -> Hosts, выбираем Zabbix Server и прикрепляем к нему созданный ранее шаблон.
Ждем несколько минут и идем в раздел Monitoring -> Web смотреть результаты мониторинга сайта github.com.
Код ответа 200, искомая строка найдена, что подтверждает Status OK. Тут же графики скорости загрузки сайта и время отклика. Более подробную информацию о мониторинге указанного сайта можно посмотреть в Latest Data.
Значение параметра Failed step of scenario "github.com" равное 0 означает, что все шаги проверки сайта выполнены без ошибок. Если у вас несколько шагов и какой-то из них завешается ошибкой, тут будет номер этого шага. То есть в общем случае, все, что не 0, это какие-то проблемы. Позже мы это будем использовать в триггере. А пока добавим пару графиков к шаблону, которые потом можно будет использовать в дашбордах.
Настройка графиков мониторинга веб сайта
Возвращаемся в наш шаблон и переходим в раздел Graphs. Создаем новый график.
Добавим график скорости загрузки главной страницы сайта.
По аналогии можете добавить график времени отклика сайта. Я разу добавил оба эти графика в Screen. Получилось вот так.
Для более красивых визуализаций лучше использовать Дашборды. Теперь настроим мониторинг сайта с авторизацией.
Мониторинг сайта с авторизацией
Немного усложним задачу. Давайте попробует выполнить авторизацию на сайте и провести мониторинг как самой авторизации, так и закрытой страницы за ней. Я для примера возьму форум centos.org/forums/, авторизуюсь на нем и после авторизации проверю страницу с персональной информацией конкретного пользователя.
Для того, чтобы настроить в zabbix мониторинг сайта с авторизацией, надо правильно сформировать post запрос для этой самой авторизации. Я это делаю следующим образом. Иду на страницу с авторизацией. В данном случае это https://www.centos.org/forums/ucp.php?mode=login, открываю DevTools в Сhrome, вкладку Network. Заполняю поля формы авторизации заведомо неправильными данными, чтобы авторизация завершилась ошибкой. После этой ошибки смотрю заголовки самого первого запроса.
Я нажимаю на 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 типа оповещения:
- О низкой скорости доступа к сайту.
- О недоступности сайта вообще.
Идем, как обычно в исходный шаблон, на вкладку 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 4.0 - sites_monitoring.xml
Вот и все, мониторинг веб сайта работает, авторизация проверяется, оповещение о недоступности сайта настроено. Для полноты картины можно создать Screen или Dashboard с выводом всех необходимых параметров на один экран. Его настройки уже будут зависеть от конкретной ситуации и тех данных, которыми вы располагаете. К примеру, если у вас настроен мониторинг веб сервера, то можно разместить рядом графики его загрузки и параметры доступа к сайту. Туда же можно добавить загрузку самого сервера по процессору и памяти и вывести график использования сетевого интерфейса.
В этом плане Zabbix очень гибок и позволяет настроить все на любой вкус и под любые требования.
Заключение
Добавлю несколько слов, как можно использовать данный мониторинг web сайта. У меня было два хостинга и хотелось выбрать один более быстрый. Загрузка самого сервера по железу была настолько низка, что ее можно было вообще не брать в расчет. Более важным параметром было именно время отклика сервера и скорость доступа к нему. Я запустил сайт на обоих серверах и настроил мониторинг. По его параметрам выбрал более быстрый сервер.
Конечно, тут нужно понимать, что данные подобного мониторинга очень условны и зависят о того, где располагается сам сервер заббикса. Возможна ситуация, когда мониторинг всех сайтов будет показывать примерно одни и те же цифры из-за ограничения самого сервера мониторинга. Нужно иметь это ввиду. Еще достаточно часто при проверке времени отклика сайта появляются большие провалы по времени до 5-10-15 секунд. Это сильно влияет на среднее время доступа. Возникают эти провалы из-за временных сетевых проблем не обязательно на самом сайте. Это тоже нужно учитывать при анализе полученных данных.
В любом случае нужно с головой подходить к анализу данных мониторинга сайта. В большинстве случаев важны не сами значения, а общие тенденции их изменения в сравнении и с другими хостами. Учитывайте это. На этом у меня все.
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.Дополнительные материалы по Zabbix
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Рекомендую полезные материалы по Zabbix: |
Настройки системы |
---|
Видео и подробное описание установки и настройки Zabbix 4.0, а также установка агентов на linux и windows и подключение их к мониторингу.
Подробное описание обновления системы мониторинга zabbix версии 3.4 до новой версии 4.0.
Пошаговая процедура обновления сервера мониторинга zabbix 2.4 до 3.0. Подробное описание каждого шага с пояснениями и рекомендациями.
Подробное описание установки и настройки zabbix proxy для организации распределенной системы мониторинга. Все показано на примерах.
Подробное описание установки системы мониторинга Zabbix на веб сервер на базе nginx + php-fpm.
|
Мониторинг служб и сервисов |
Мониторинг температуры процессора с помощью 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.
Описание мониторинга лог файлов в zabbix на примере анализа лога программы apcupsd. Отправка оповещений по событиям из лога.
|
Добрый день. У меня Zabbix 6.4.9.
Настроил по мануалу, но получаю ответ "Шаг "GitHub" [1 из 1] завершен с ошибкой: required pattern "2024 GitHub" was not found on https://github.com/"
Как бы я не тасовал настройки- исход не меняется, не понимаю, в чем дело
Мне часто задают такие вопросы, и сам подобные ошибки регулярно вижу. Причин может быть много. Так сходу не скажешь, в чём проблема. Рекомендую попробовать поставить в качестве проверочной строки только цифры, не текст. В тексте возникают моменты с кодировками по пути следования текста до базы заббикса. В целом эти проверки часто вот так глючат. Иногда из-за кодировок или ещё чего-то. Постоянно с этим сталкиваюсь. Если есть возможность проверять только какие-то цифры, я их беру. С ними меньше проблем, чем со строками.
Запросы от Zabbix может не пропускать ddos защита. Сталкивался с этим не раз. Никаких ошибок нет, но заббиксу сервис отдаёт не ту страницу, что ты видишь в браузере. Из-за этого не работает проверка по содержанию, но код ответа будет 200.
Понял, ну тогда, по сути, бесполезная вещь
Ну почему сразу бесполезная. То, что она иногда глючит, не говорит о её бесполезности. Если настроил и всё работает, то и дальше будет работать. Проблемы возникают в момент настройки.
Добрый день а если я использую на своём веб ресурсе самоподписанные сертификаты можно ли это проигнорировать в заббикс
Можно. В настройках веб проверок можно загрузить свой сертификат и ключ от него.
Доброго времени суток, есть ли возможность в Заббиксе сделать дашборды группы хостов. К примеру есть куча серверов и надо чтоб на экран выводилось есть ли проблема на группе серверов, чтоб грубо говоря руководство видело что есть проблемы на серверах. Или это делается отдельными средствами?
Да, есть такая возможность. Есть виджет со списком проблем. В этом виджете можно указать группу, для которой он будет отображать проблемы. Можно как на одном дабшборде сделать несколько вкладок для разных групп серверов, так и отдельные дашборды для каждой группы.
Есть заббиккс 5.0 (доступа к консоли нет, есть только доступ к админке через веб морду)
Настроил шаблон веб мониторинга.
Если привязываешь к windows server c zabbix agent 2, то опрос происходит примерно 4 раза в час, что неприемлемо, если привязать шаблон к zabbix серверу, то опрос происходит, как и положено, ежеминутно, но проблема в том, что надо дергать http локально на сервере с IIS, т.к. с заббикс сервера доступа нет к данному сайту.
Админы говорит, что они голову ломали уже давно над этим, но так и не нашли причины, почему на windows хосте опрос происходит раз в 15 минут
Так трудно что-то сказать, в чём причина. Может очередь какая-то есть на этом сервере. Через веб интерфейс можно посмотреть через Администрирование -> Очередь -> Обзор очереди. Может с виндового сервера подвисают запросы и на таймаутах висят. Это первое, что в голову приходит.
что делать если выходит ошибка что сайт даёт отвечает не 200 а 308 ?
Застрял на этом этапе:
Я нажимаю на 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.
Добрый день использую версию 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. Почему так, я не знаю. Надо разбираться с сайтом.
Коллеги, нигде не могу найти ни по-русски, ни по-английски как воспользоваться веб-мониторингом в 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 - будто какой-то другой инструмент реализует симуляцию кликов мыши, а Заббикс за этим "следует"... Короче, ерунду написали в хелпе.
А ходить по ссылкам - это как делать, где почитать?
Я условно сказал, ходить по ссылкам. Проверка может состоять из множества шагов, где в каждом шаге могут быть разные ссылки. Я обычно делаю проверку на разные страницы - с закэшированной статикой и на динамический контент (поиск, форум и т.д.)
Я имел в виду возможность Заббиксу активное действие автоматически выполнить. Получается он не умеет делать никакого активного действия, ни эмулировать клик мышью, ни эмулировать переход по ссылке при известном ее адресе и имени. Верно?
Да, не умеет.
Добрый день! Подскажите как узнать что вводить в POST поля, как понимаю сайты написаны на C# или что та в этом роде. То что показано на примере оч сильно отличается на тех что пытаюсь поставить сам
Добрый день, подскажите плиз а можно ли настроить шаблон для мониторинга 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
Здравствуйте!
Нужно мониторить доступность этих сайтов:
_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 скрипты.
А второй?
https://bankruptcy.kommersant.ru/
Есть заголовок >ОБЪЯВЛЕНИЯ О НЕСОСТОЯТЕЛЬНОСТИ<
zabbix же должен его видеть?
Здравствуйте спасибо за хорошую статью, прочитал с удовольствием, но возникло пару вопросов.
1) Возможно ли настроить авторизацию через заббикс на вэб страницу не использую raw post? Если да, то как?
2) Я следую вашим инструкциям, но на моменте где вы в коде страницы берете ссылку в разделе "Formdata - vieiw source" у меня такой раздел вовсе отсутствует, причем я проверял и в мазиле и в гугле, и даже на сам centos заходил тоже.
Буду рад любой помощи, спасибо
1. Мне неизвестные такие способы. В следующей версии 6.0 обещали обновить мониторинг web сайтов. Возможно что-то появится на эту тему.
2. Значит авторизация работает не через подобную форму. Что с эти делать - не знаю.
В Zabbix слабо развит продвинутый мониторинг сайтов. Они знают об этой проблеме и будут развивать данное направление. Уже в планах всё это есть. Текущий веб мониторинг был написан лет 5-7 назад и с тех пор не менялся.
В версии 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). Однако сработку этого триггера я не проверял, так что не ручаюсь)
Всем привет.
На сколько я знаю zabbix мониторит сайты только на стандартных портах 80,443.
Кто может подсказать, как настроить мониторинг доступности сайта если сайт на не стандартном порту например site.com:8080 ?
Ни разу не пробовал указывать нестандартные порты. Но разве если указать site.com:8080 он не будет работать? По идее должен.
А если надо уведомление о недоступности сайта отправлять на ряд почтовых ящиков?
Причем это могут быть ящики посторонних людей, не работающих в организации.
Понятно, что можно сделать некоего служебного пользователя в заббикс, ему прописать эти адреса, и на него назначить отправку сообщений.
А можно без создания юзера?
Можно сделать почтовый алиас, а в него прописать всех необходимых получателей. Тогда в Zabbix вообще ничего настраивать не надо.
Да, но когда создаем действие на триггер, нужно указать в операции, кому отправляем сообщение.
Можно выбрать юзера, группу юзеров. Выбрать через что отправлять.
Но не вижу, как создать правило, по которому отправка сообщения пойдет просто на ящик (ну или на альяс)
Или не туда смотрю.
Понятно, что можно выкрутится по разному.
Сделать пересылку из своего почтового ящика по определенному правилу, например.
Одного пользователя придётся так или иначе указать, к которому привязан почтовый ящик. Я только не понял, а в чем проблема добавить пользователя в систему и указать ему какой угодно ящик? И сделать этих пользователей столько, сколько надо? Можно группу объединить для конкретного триггера.
Ну да, я вижу, что так можно сделать.
Но подумал, что может я чего-то упускаю?
Пользователя сделать не проблема, но если его можно не делать - то лучше не делать )
А если добавить узел сети и указать dns сайта и к нему добавить уже и веб сценарий и триггер, то будет работать?
Или нужно обязательно добавлять веб сценарий к узлу сети, на котором работает агент?
Работать будет. Все эти проверки можно куда угодно добавлять, но реально они выполняются на zabbix-server.
Доброго дня, а как выпонить web сценарий не от имени zabbix server, а с какого ни будь узла сети. zabbix не видит этой страницы, но есть сервера которые ее видят.
Я не знаю. Тоже было бы интересно это настроить. По-моему, такой возможности сейчас нет.
https://github.com/mohitrajvardhan17/Zabbix-Web_monitoring с помощью этого скрипта смог поставить web мониторинг от имени узла сети.
Спасибо, попробую.
По этой статье делал, все получилось ок, но вопрос, как сделать чтобы был еще один график в котором были данные по ответам сервера (200, 404, 500) ?
Такого графика нет. Да и как он должен рисоваться? Это же будет просто прямая линия, так как там 99% времени будет код 200.
Возможно, но можно будет сделать круговой график и в % увидеть сколько каких ответов.
Добрый день.
Как настроить триггер, чтобы уведомление о том, что сайт стал доступен отправлялось не сразу, а через заданное время? Например, чтобы сайт был доступен хотя бы 5 мин.
В отдельной статье рассказываю - https://serveradmin.ru/nastroyka-otlozhennyih-uvedomleniy-v-zabbix/
Статью добавлю в закладки, но нужно отложенное уведомление не на проблему, а на её решение. Уведомление должно откладываться на операцию восстановления. Нужно отложить уведомление, когда узел становиться доступен, а в операции восстановления, таких опций не вижу.
Можно задать выражение для решения проблемы и указать там этот интервал 5 минут. То есть только если последние 5 минут сайт доступен - проблема закроется. Настраивается это в настройках триггера
Доброго времени суток
Я сделал все по инструкции, но у меня нету самой вкладки Monitoring -> Web
В новой версии zabbix 5+ этот раздел переехал в Мониторинг -> Узлы сети. Выбираем узел, на котором настроили web мониторинг и выбираем его в самом правом, последнем столбце.
Спасибо, да действительно. Есть график
А в 5 версии нельзя из telegram передавать команды в забикс?
Ну типа сделай мне iisreset такого то сайта.
Что то найти ничего подобного не могу.
Я такого не видел. Это надо бота писать, который через zabbix api будет взаимодействовать с сервером.
Вот и я так думаю, вдруг что то подобное видели, но все равно спасибо за информацию.
А если росто нет пункта Form Data, то поле где вы смотрели как составить POST-запрос, что делать?
Не знаю. Тут нет универсального совета, как поступить. Нужно с каждым конкретным сайтом разбираться. Где-то вообще подобное воспроизвести не получится.
На четвертом скриншоте вашей статьи есть "Headers"
https://i.imgur.com/bflURIj.png
Как можно мониторить изменения содержимого страници с помощью Zabbix?
Я насколько понял - можно с помощью Body and headers.
А есть где-то статья: как мониторить head и body?
Не понял, что значит мониторить head и body?
На четвертом скриншоте вашей статьи есть "Headers"
https://i.imgur.com/bflURIj.png
Как можно мониторить изменения содержимого страници с помощью Zabbix?
Я насколько понял - можно с помощью Body and headers.
Нет, headers это заголовки запроса. То есть в Zabbix можно указать какие-то заголовки, например, с токеном авторизации. Содержимое страницы и так мониторится в моем примере. Я же указываю конкретную текстовую строку, наличие которой проверяется на сайте. Если этой строки нет, срабатывает триггер.
Сделал проверку сайта в 3 этапа:
1. auth
2. проверка данных
3. log auth
И если на 2-м этапе у меня ошибка то 3-й не выполняется.
А мне нужно вылогиниватся, поскольку есть ограничение по сессиям. Как это реализовать?
А есть ли возможность засунуть код ответа в сообщение отправляемое на почту?
Так сходу не скажу, не исследовал. Но в целом, это реализуемо через триггеры. Можно как минимум на разные коды ответов сделать триггеры с отправкой уведомлений.
А если не хочется возится с zabbix или нет лишних ресурсов, можно воспользоваться сервисами, благо их много в последнее время стало.
Я пользую effro.ru там бесплатных 10 проверок, мне этого хватает на 3 сайта и сервак.
Дмитрий ... 3 сервиса это не мониторинг... это так, вот сотни, тысячи и тд....
Шаг "******" [1 из 1] завершен с ошибкой: required pattern "ОТКРЫТИЕ СЕРВЕРА" was not found on **********
данная ошибка не дает покоя настроенно все как у вас в мануале версия 4.4 , данный сайт работает через cloud flare , ip сервера забикс добавлен в вайтлист , что может быть еще?(
Может с кодировками что-то, поэтому не получается проверить строку. Попробуйте какое-то число или единичное английское слово, которое есть на странице.
Спасибо хороший человек
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 при ошибке на любом из шагов. Если нужны подробности по конкретному шагу, тогда надо триггеры делать уже на сами шаги.
Гораздо удобнее все это проделать с системным макросом {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 по аналогии с наследуемыми и вновь добавленными макросами?
Вот это я не знаю. Надо пробовать. По идее можете, но возможно веб проверки реализуются не так, как все остальные айтемы. Они как-то особняком от всего остального функционала стоят.
Попробовал переделать, работает. Спасибо за идею.
Приветствую.
Какое-то странное использование шаблона. Именно как шаблон он не используется. С таким же успехом можно просто навесить веб-сценарии на узел Zabbix Server.
Это да, но если захочется перенести проверки на другой сервер или кому-то передать, то лучше, если они будут в виде шаблона. Просто удобнее.
Добрый день,
есть вопрос немного не по теме. я установил заббикс сервер по инструкции и добавил пару машин для теста. все отлично работает за это спасибо! но вот проблема есть около 200 серверов которые еще нужно добавить делать это в ручную ух как не хочется, может быть вы сталкивались с тем как задеплоить заббикс агента на множество серверов так, чтобы заббикс серве подхватил их автоматически ?
Спасибо большое!
Иван
Добрий день, классная и полезная статья, все настроил и подключил оповещение в телеграм, но много сайтов со временем отпадают и приходит уведомление что сайт недоступен, но когда появляется эта проблема я перехожу на сайт (еще до отправки сообщения в телеграм) и сайт работает. В чем может быть ошибка подскажите пожалуйста?
Надо смотреть, что в триггерах и последних данных мониторинга. Возможно где-то ошибка. Смотрите после срабатывания триггера в 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 ошибка не грузит содержимое сайта. Мне так трудно вам что-то посоветовать. В статье есть вся информация, чтобы разобраться самостоятельно.
спасибо, буду дальше разбираться,может поменяю проверку фразы
Полностью обновил и переработал статью.
Здравствуйте.имеется целый влан с камерами, по LLD заведены в заббикс, необходимо проверять не только их доступность, но и отдачу страницы авторизации.как бы это лучше реализовать?
Как я понимаю, либо вручную через web проверки, либо добавлять их автоматически через zabbix api. Насколько я понял, web проверки через lld делать нельзя. Могу, конечно, ошибаться, но когда мне нужно было сделать примерно то же самое, я не нашел другого варианта. Как раз увидел информацию о запросах на автоматизацию web проверок. Разработчики только обещали это реализовать. В последних обновлениях я не видел информации, что это сделано.
Спасибо за статью. Единственное, как я понял триггер должен быть немного другой. Если я правильно нашел в документации 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 значения должны придти с ошибкой).
Вы абсолютно правы. В начальных своих статьях я допускал эту ошибку из-за недопонимания работы этого условия. Давно уже осознал и использую как раз со средним значением триггер, как вы предложили.
Добрый день.
Не могу настроить 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 интерфейсом (наличие бумаги в термопринтере или статус линии в телефонном шлюзе) который их отображает только после ввода логина и пароля.
Добрый день! Огромное спасибо за труды.
Заббикс 4.0. Делал все четко по инструкции, ничего не пропуская. В итоге и Яндекс и нужный сайт в мониторинге выпадают в "ПРОБЛЕМА".
Не подскажите, вроде бы на фаерволле не надо никаких дополнительных правил прописывать? А так графики со скоростью и доступом показывает корректно и информация поступает. Не пойму, в чем может быть дело.
Разобрался. Не внимательность. В триггере вместо ставил = .
Добрый день. Спасибо за статью, настроил свои сайты на мониторинг по ней. Но с одним сайтом беда. Любое слово которое я пытаюсь найти на нём, просто не обнаруживается. Пытался найти как текст между тегами. Так и какие то имена типа по слову Привет.
Какие еще варианты бывают? На форуме Забикса погуглил, говорят сайты с каким то Java кодом не показывают текст. Но тут обычный сайт на WP
Возможно что-то с кодировкой не так, поэтому не работает. Как простое решение могу посоветовать взять какие-то цифры, вместо строк.
К сожалению по ціфрам та же лажа(
Например вконце сайта стоит © 2018, пробую искать по слову "2018"
Шаг "PP" [1 из 1] завершен с ошибкой: required pattern "2018" was not found
Добрый день! Скажите можно ли проверить доступность по двум разным фразам одновременно, например или первая или вторая, соответственно если находит одну из них то все в порядке. Спасибо!
Можно. Вы же триггер будете сами настраивать. Там можно поставить условие ИЛИ по нескольким итемам. Смотрите подробности в документации по созданию триггеров - https://www.zabbix.com/documentation/3.4/ru/manual/config/triggers/expression
(фраза) or (фраза) ?
Не будет ли "or" восприниматься как часть фразы которую он ищет?
Вы не поняли, то, что я написал. Нужно делать отдельно проверку по каждой из фраз. Затем в триггере сделать условие срабатывания, если обе проверки с разными фразами закончились ошибкой. Как раз в триггере и будет условие, что первая и вторая проверка закончились ошибкой. Я в предыдущем ответе ошибся. Проверка в триггере будет не ИЛИ, а И. То есть оба шага с ошибкой, тогда срабатываем.
В общем, тут нужно некоторое понимание принципа работы триггеров и итемов заббикса. Если его нет, то вряд ли получится сделать, то, что я описываю.
Я не совсем правильно выразилась. Мне не нужны тригеры как таковые. У Забикса есть на панели вывод "WEB monitoring" если я установлю две проверки по каждой фразе то общее число веб проверок будет показывать в два раза больше серверов. Меня интересовало, можно ли установить условие проверки именно в текстовую строку, которая запрашивает фразу поиска: "В строку Required string вводим какое-нибудь слово или фразу, которая присутствует на проверяемой странице. По наличию этой фразы система будет принимать решение о доступности сайта." У меня две версии по сути одинаковых сайтов, только вот страница логина у них отличается. Хотелось бы что бы сразу при веб проверке она видела обе лог страницы. Спасибо за помощь!
Всё настроил, всё работает, но почему-то не срабатывает тригер по коду ошибки {test:web.test.rspcode[testing_asofts,test_asofts].last(#1)}200 , по failed step шлет почту, а по коду - нет
Подскажите, пожалуйста, как проверить что на сайте 502 ошибка (как проверить что сайт полностью недоступен, я знаю)?
В заббиксе можно указать в одном из шагов по проверке сайта поиск числа 502. Если такое число найдено, то шаг будет выполнен успешно, можно отправлять алерт по этому событию.
Вы имеете ввиду при создании Web сценария на вкладке Steps в поле Required status codes указать 502?
Здравствуйте, Благодарю за Ваши статьи! Полностью настроил zabbix по Вашим мануалам!
Конкретно по данной статье есть вопрос, как настроить уведомление когда сайт вновь стал доступен, мне при его доступности приходит сообщение от того же триггера с подписью сайт не доступен.
Большое спасибо и респект автору за хорошие статьи, в которых материал изложен просто и доступно для понимания новичков в администрировании, к которым принадлежу пока и я.
Но вот, что странно для меня в этой статье. При внесении в файл 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 просто проще, а проверить работу все равно можно.
Приветствую! Возник вопрос по мониторингу защищеной части сайта. Сайт работает по https. Пробывал все по гайду с zabbix.com через веб-сценарии, но всё без результатно, на втором шаге нет обращений на сервер для входа. Возмно есть ньюанс с https ? (в гайде пример с http)
Пример, есть задача: нужно мониторить два ip адреса (потери, пинг) , желательно на одном графике.
Я захожу в настройки "Узлы сети" - тут нужно добавлять два узла с разными ip или можно один только в "Интерфейсы " указывать два айпи ?
Спасибо
Два разных узла. Потом создать график на любом узле и добавить информацию с обоих узлов.
Да, всё получилось. Спасибо
Возможно ли выводить на одном графике доступность (ping ) двух и более ресурсов ?
Конечно. Графики и комплексные экраны можно создавать какие угодно и добавлять на них элементы данных с различных хостов.
Спасибо за статью. Установил всё получилось. Не могу сделать графики доступности (пинг, задержки) имеено ip адреса а не имени сайта. Можете намекнуть куда смотреть ?
Не совсем понял, в чем проблема. Если сайт по ip адресу отвечает так же, как по имени сайта, то мониторинг настраивается аналогично. А если есть просто ip адрес, который нужно пинговать и отслеживать врем отклика, то можно добавить хост, назвав его как угодно, указать ему нужный ip адрес и применить к этому хосту шаблон icmp ping.