Главная страница Публикации Статьи Мониторинг сайта

Мониторинг сайта

Мониторинг сайта – отказоустойчивость и качество обслуживания

к.э.н. Лавлинский Н. Е., технический директор ООО «Метод Лаб»

К сожалению, многие владельцы веб-ресурсов упускают из вида многие важные элементы процесса эксплуатации. Одним из таких проблемных элементов является мониторинг веб-приложения. Зачем нужен мониторинг? Если кратко, то мониторинг сайта дает возможность знать о проблемах до того, как их заметили ваши пользователи и клиенты. В развернутом виде мониторинг решает множество задач: от контроля качества обслуживания до планирования мощностей веб-сервера. Чтобы разобраться во всех аспектах, проведем классификацию видов мониторинга.

Мониторинг сервера и мониторинг приложения

Во-первых, разделим все системы мониторинга по объекту на две группы: мониторинг сервера и мониторинг приложения. Мониторинг сервера требуется для контроля состояния операционной системы, СУБД, веб-сервера, других компонентов приложения. Мониторинг приложения контролирует состояние бизнес-показателей самого приложения (например, интернет-магазина): количество просмотров страниц, количество заказов, частота регистраций, сумма покупок и так далее. В данной статье мы будем концентрироваться на мониторинге сервера, так как это более доступный вид мониторинга и он не сильно зависит от специфики приложения. Мониторинг приложения как правило является частью самого веб-приложения.

Мониторинг с графиками и мониторинг с оповещениями

Вторая классификация основывается на принципе действия системы мониторинга. Мониторинг с графиками (например, Munin и Cacti) предназначен для регистрации различных параметров во времени, на основе этих данных строятся графики. Как правило, данные сохраняются с помощью технологии RRD (round-robin database). Более новые данные затирают старые, остается фиксированное «окно». В результате размер БД всегда постоянен, а точность снижается при увеличении периода измерений. Обычно хранятся значения показателей за сутки, неделю, месяц и год. Например, в таком формате полезно хранить использование пропускной способности канала для последующего анализа.

Мониторинг с оповещениями решает задачу проверки системы заданным характеристикам. Эти проверки проводятся с заданной регулярностью и в случае отклонения показателя за пределы нормы, формируется сообщение о проблеме (alert). Сообщения обычно представляют собой электронное письмо или SMS. У каждой проверки есть несколько состояний: нормальное (OK), предупреждение (warning), критическое (critical). Например, проверка сетевой доступности хоста может производиться программой ping. Для такой проверки можно поставить следующие критерии состояния: нормальное (RTT меньше 50 мс, потерь пакетов нет), предупреждение (RTT больше 50 мс или потери пакетов до 10%), критическое (RTT больше 100 мс или потери пакетов больше 10%). Как видно даже из такого простого примера, определение рамок для состояний занятие не простое и требует хорошего понимания системы и тонкой настройки.

Что нужно мониторить?

Сконцентрируемся на мониторинге веб-сервера. Какие показатели нужно контролировать для предупреждения проблем, планирования ресурсов, обеспечения качества обслуживания посетителей веб-сайтов?

Начнем с мониторинга с оповещениями. Общий подход заключается в следующем: контролировать работоспособность всех компонентов веб-сервиса (веб-сервер, СУБД, поисковый сервер, кеширующий сервер, SSH-сервер и т. д.), нагрузку на систему, сетевую доступность сервера, параметры здоровья аппаратной части. Набор проверок может выглядеть примерно так:

  • доступность HTTP (GET запрос);
  • доступность MySQL;
  • доступность бекенда;
  • доступность SSH;
  • доступность сервера Sphinx;
  • нагрузка на систему в виде load average;
  • сетевая доступность (ping);
  • количество свободного места на дисках;
  • состояние RAID-массивов;
  • температура системы;
  • состояние дисков по SMART;
  • корректность DNS-записи доменов;
  • срок регистрации домена;
  • срок годности SSL-сертификата.

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

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

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

Набор показателей для мониторинга с графиками может быть следующим:

  • количество запросов в секунду на Nginx;
  • количество запросов в секунду к MySQL;
  • распределение различных типов запросов к MySQL;
  • состояние кешей MySQL;
  • время ответа бекенда (например php-fpm или Apache);
  • статусы ответов фронтенда и бекенда (2xx, 3xx, 4xx, 5xx);
  • использование оперативной памяти системой;
  • использование центрального процессора;
  • использование пропускной способности на сетевых интерфейсах;
  • нагрузка на систему load average;
  • время ответа дисковой подсистемы;
  • нагрузка на дисковую подсистему (процент утилизации);
  • количество процессов в системе;
  • температура системы.

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

Какие задачи решает мониторинг сайта?

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

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

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

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

Иллюстрацию практической части статьи смотрите в видео.

Лучшее ускорение сайтов в Рунете

Ускорение сайтов

Цена от 19 900 Р