Мониторинг времени отклика сайта в zabbix

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

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

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

Введение

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

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

Я обратил внимание на этот параметр не случайно. Последнее время поисковые системы стали внимательно относиться к времени отклика сервера с сайтом. Первым об этом заявил гугл еще несколько лет назад. В его инструменте PageSpeed Insights давно присутствует тест на время отклика сервера. Если он отвечает медленнее, чем 200 мс, то вы получаете предупреждение и рекомендации по устранению данного недостатка сервера. Некоторое время назад яндекс в вебмастере стал тоже указывать на высокое время отклика сайта, если таковое замечает.

Так что тема времени ответа сервера на сегодняшний день очень актуальна. Отдельно нужно рассматривать настройку веб сервера для уменьшения отклика. Возможно, я соберусь и напишу свои рекомендации на этот счет. А пока настроим мониторинг времени отклика сайта.

Методика мониторинга времени ответа сервера

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

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

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

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

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

  1. Лучше всего создавать шаблон web мониторинга, а не настраивать его на конкретном агенте. Совет этот универсальный для любых метрик, но именно для web мониторинга он более актуальный. Так вы сможете оперативно запускать проверки сайта с разных серверов, где установлены агенты забикса. Плюс, через экспорт шаблона вы легко сможете перенести мониторинг на другой сервер. Это очень важно, так как если у вас многоходовый мониторинга сайта, вручную его переносить на другой сервер очень хлопотно.
  2. У заббикса есть свои внутренние таймауты. Иногда я вижу в полученных данных значения, которые сильно выбиваются из общей картины. Например, у вас среднее время отклика сайта 200-300 мс. Иногда вы будете видеть на графике всплески до 1500 мс, 2500 мс, 3500 мс. Значения будут кратны одной секунде. Я не нашел подробной информации, как именно заббикс делает мониторинг сайта. Я думаю, что свыше какой-то задержки, он ждет секунду, пробует снова и так далее. Эти данные не стоит брать в расчет.
  3. Не стоит обращать внимание на абсолютные цифры. Все системы измеряют время отклика по-разному. В вебмастере яндекса вы увидите одно значение времени отклика сервера, в его же яндекс.метрике другое, гугл покажет третье, а заббикс четвертное. Отличаться эти значения могут существенно, в 2-3-4 раза. Я использую мониторинг времени отклика сайта в заббиксе для отслеживания динамики. К примеру, вы решили переехать на новый web сервер. Нужно как-то оценить его быстродействие. Вы сравниваете значения в мониторинге на старом сайта, потом на новом и делаете выводы.

По последнему пункту приведу простой пример из недавнего опыта. Я подготовил новый веб сервер. Нужно было оценить, насколько он быстрее работает на том же сайте, чем предыдущий. Я развернул сайт на новом сервере, поправил в файле hosts на сервере с заббикс агентом ip адрес сайта, направив запросы на новый web сервер. Получилась такая картинка.

Изменение отклика сайта при переезде

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

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

  • Сетевую систему хостера
  • Отклик жестких дисков
  • Загруженность ноды виртуальных машин, если переезжаете на VDS.

Вы можете заказать сервер с хорошими параметрами по железу, но не получить быстрого отклика сайта по независящим от вас причинам. С этим столкнулся не так давно, когда пробовал использовать веб сервер у облачного провайдера. На словах все красиво - гибкая настройка параметров, отказоустойчивость, удобный бэкап и т.д. В общем, все то, чем хвалят облака. А на деле время отклика сайта было 300-400 мс при типовых настройках веб сервера. Использовался самый дорогой и быстрый тип диска. На выделенном бюджетном сервере при тех же настройках отклик был 100 мс.

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

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

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

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

Итак, сначала мы настраиваем мониторинг сайта стандартным способом. Ждем некоторое время, чтобы накопились значения в итеме Response time. Возьму для примера свой сайт. Вот мой график ответа главной страницы сайта за последние 3 часа.

Мониторинг времени ответа сервера в zabbix

На графике хорошо видно всплеск, о которых я писал выше, с очень большим временем отклика. Не обращаем на него внимания. Я вижу, что мой сайт почти всегда отвечает быстрее 200 мс. Настроим триггер, который будет оповещать меня о том, что мой сайт стал работать медленнее. Я предлагаю такую настройку триггера.

Триггер при снижении быстродействия сайта

Выражение проблемы:

{Web monitoring:web.test.time[serveradmin.ru,serveradmin главная,resp].count(#7,0.2,"ge")}>4

Выражение восстановления:

{Web monitoring:web.test.time[serveradmin.ru,serveradmin главная,resp].count(#3,0.2,"lt")}>1

Для определения проблемы медленного отклика сайта я беру 7 последних значений из итема Response time for step, сравниваю их со значением 0.2 с. Если среди этих 7-ми значений более 4-х (5 и более) окажутся выше, чем 0.2, я считаю, что с быстродействием сайта проблемы и шлю оповещение.

После того, как в трех последних значениях, более одного будут ниже 0.2, проблемы нет. То есть, если в трех последних значениях, 2 будут ниже 200 мс, то все в порядке.

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

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

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

Заключение

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

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

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

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

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

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

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

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

Автор Zerox

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

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

  1. >> "Так вы сможете оперативно запускать проверки сайта с разных серверов, где установлены агенты забикса"
    Чойта? когда все проверки из веб-сценариев осуществляются с сервера, а не с агента.

    • Да, это так. Я ошибся в формулировке, но тем не менее, совет актуален всё делать в шаблонах. Кстати, в сети есть шаблоны веб проверок, реализуемых через агентов. Я находил, проверял и использовал. Так что если для Вас это актуально, то вопрос решаемый.

  2. Хорошо бы подобную статью, только по ответам сервера, 200/301/404/500 и подобных ошибок сервера

    • Zabbix не подходит для анализа логов. Их обычно много, а он не рассчитан на хранение большого количества подобных данных. Для этого стоит смотреть в сторону ELK - https://serveradmin.ru/category/elk-stack/

      • Ну ELK то понятное дело и для логов да, тут цель другая, просто типа curl-ом дергать сайт и записывать в базу timestamp и код ответа и рисовать красивые графички, да еще в придачу и сигналить если ошибок много будет. Плюсом что можно любой сайт повесить на мониторинг, не только к которому у тебя есть доступ :) Ну и Zabbix уже есть.

  3. Аноним

    а нет статьи о мониторинге веб сайтов с конкретных хостов?

    • Не понял, что имеется ввиду. Использовать для проверок разные хосты, подключенные к мониторингу, а не сам zabbix server?

  4. И что бы мы делали без вашей великолепной идеи

  5. Очень интересная мысль

  6. Сегодня получил уведомление от заббикса о том, что сайт тормозит. Зашел, посмотрел на график - действительно были проблемы. Когда закончились, получил уведомление, что все в порядке.

    Мониторинг ответа сервера

    Так что с подобным мониторингом вы всегда будете в курсе, как отвечает ваш сайт.

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

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

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