На работоспособность современного веб-сервиса влияют самые разнообразные факторы. В условиях постоянного роста количества данных и увеличения числа пользователей инфраструктура сервиса усложняется, и остро встает проблема отслеживания ее состояния. Имеющиеся средства мониторинга (например, Nagios или Icinga) во многих случаях оказываются недостаточными.
Одновременно с ростом инфраструктуры требуется обеспечивать масштабируемость системы мониторинга: количество проверок все время растет, отчеты становятся все более объемными… Отслеживание стабильности работы веб-сервиса в таких условиях отнимает все больше времени и средств.
Прекрасно понимая всю сложность описываемой ситуации, мы разработали услугу мониторинга сервисов для своих клиентов. Подробное её описание представлено ниже.
Что такое мониторинг?
Мониторинг — это услуга, позволяющая проверять различные сервисы на доступность из нескольких точек в Интернете и отправляющая уведомления в случае выполнения или невыполнения заданного условия. Мы постарались сделать услугу мониторинга максимально гибкой, чтобы ей могли воспользоваться и те, кто не имеет навыка администрирования веб-сервисов.
Доступные типы проверок
В настоящее время доступны следующие типы проверок:
- PING – проверка наличия связи с сервером, помогает измерить задержку и доступность от точки проверки до сервера;
- TCP – проверка состояния TCP-порта;
- UDP — проверка состояния UDP-порта;
- SSH — проверка подключения без авторизации, а также проверка баннера SSH;
- SMTP, POP3, IMAP — проверка работоспособности почтового сервиса по выбранному протоколу;
- DNS — проверка правильности преобразования доменного имени в IP-адрес на указанном резолвере;
- HTTP GET — проверка содержимого и кода ответа, а также поиск подстроки в возвращенных данных;
- HTTP HEAD — облегченный запрос GET, позволяющий проверять наличие документа на сервере по коду ответа без необходимости загружать всё тело документа;
- HTTP базовая авторизация — проверка механизма базовой авторизации;
- HTTP digest — проверка механизма дайджест-авторизации;
- FTP — проверка достуности FTP-сервера;
- PostgreSQL — проверка доступности сервера баз данных PostgreSQL;
- MySQL – проверка доступности сервера баз данных MySQL;
- SSL — проверка срока действия SSL-сертификатов для доменных имен.
Точки присутствия
На данный момент точки проверки расположены в следующих городах: Москва, Санкт-Петербург, Екатеринбург, Киев, Амстердам, Франкфурт, Лондон, Нью-Йорк, Пало-Альто. Если на вашем сервере установлен фаервол, то при создании проверки вы можете получить IP-адреса точек присутствия, чтобы включить их в правила фаервола.
Создание проверки
В настоящее время сервис мониторинга работает в тестовом режиме. Каждый пользователь может создать только три проверки. Войдите в панель управления под своей учетной записью. В основном меню выберите пункт «Мониторинг». Откроется следующая страница:
Нажмите на кнопку «Создать». В выпадающем меню выберите тип проверки:
Затем введите параметры проверки:
Все параметры проверок подразделяются на обязательные (общие для всех типов проверок) и индивидуальные (характерные для проверок определенного типа; они отображаются в разделе «Остальные параметры».
К обязательным параметрам относятся:
- период проверки — периодичность, с которой будет осуществляться проверка;
- таймаут проверки — промежуток времени, по истечении которого проверка будет считаться неуспешной;
- последовательность выполнения проверок — порядок, в соответствии с которым будет осуществляться проверка из выбранных точек присутствия (последовательно, параллельно или же в случайном порядке);
- хост/IP — доменное имя или IP-адрес проверяемого сервера;
- протокол — приоритет протокола, по которому будет осуществляться проверка (IPv4 или IPv6).
Для каждого типа проверки могут также быть установлены индивидуальные параметры:
- Для проверок SSH:
- порт для подключения;
- баннер;
- Для проверок TCP:
- отсылаемая строка;
- строка ответа;
- Для проверок UDP:
- порт для подключения;
- отсылаемая строка;
- строка ответа;
- Для проверок SMTP:
- пользователь;
- пароль;
- безопасный режим (включен/выключен);
- баннер;
- домен;
- Для проверок POP3 и IMAP:
- пользователь;
- пароль;
- безопасный режим (включен/выключен);
- start_tls;
- баннер;
- домен;
- Для проверок HTTP GET:
- порт для подключения;
- user agent;
- реферер;
- Для проверок HTTP HEAD:
- порт для подключения;
- подстрока;
- user agent;
- реферер;
- Для проверок HTTP Базовая авторизация и HTTP Digest авторизация;
- порт для подключения;
- пользователь;
- пароль;
- Для проверок FTP:
- порт для подключения;
- режим (активный или пассивный);
- анонимный (включить/отключить);
- пользователь;
- пароль;
- Для проверок PostreSQL и MySQL:
- порт для подключения;
- пользователь;
- пароль;
- Для проверок SSL:
- порт для подключения;
- период для проверки.
Заполнив основные и индивидуальные поля, укажите точки присутствия, из которых будет осуществляться проверка.
После этого нажмите на кнопку «Создать». Далее нужно указать условия, при которых вам будет отправляться удоведомление о результатах проверки. По завершении создания проверки на экране появится следующее окно:
Затем нажмите на кнопку «Создать условия для созданной проверки». Откроется форма добавления условия:
В качестве условий могут быть заданы:
- успешное или неуспешное завершение процедуры проверки;
- ошибка подключения;
- время ответа (оно может быть равно или не равно, больше или равно, меньше или равно указанного пользователем).
Для каждого типа проверки могут также быть установлены индивидуальные условия. Уведомления о результатах проверки, отправляемые при заданных условиях, содержат дополнительную информацию, с помощью которой можно выявить проблемные участки во время проведения проверок.
Просмотр информации о проверках
Список добавленных проверок отображается на вкладке «Проверки»:
Справа от имени каждой проверки расположены кнопки управления:
— добавление проверки в избранное;
— тестирование проверки;
— просмотр и редактирование параметров проверки;
— удаление проверки.
Если нажать на любую проверку в списке, откроется карточка с детальной информацией:
Она включает следующие вкладки:
- «Информация» (название, хост, тип, дата создания, SLA, сведения о последних проверках);
- «Графики» (графики доступности и время задержки; на основе сопоставления графиков можно определить, в чем заключается причина задержек: в неисправности сети или в работе сервиса);
- «История» (список последних проверок с указанием времени, точки доступа, времени ответа и результата);
- «Статистику» (сведения об отправленных уведомлениях);
- «Настройка» (форма для просмотра и редактирования параметров проверки);
- «Условия» (сведения об условиях, установленных для выбранной проверки).
Проверки, добавленные в избранное, показываются также в списке на вкладке «Информация»:
На вкладке «Информация» также отображаются сведения о пяти последних выполненных условиях, пяти последних выполненных проверках и о пяти последних совершенных вами действиях.
Детальная информация о результатах всех проверок можно ознакомиться на вкладке «История».
Полная история всех ваших действий показана на вкладке «Действия».
Рассылка уведомлений
Уведомления рассылаются:
- по e-mail;
- мгновенными сообщениями по протоколу xmpp;
- приватными сообщениями в твиттере (DM) — в этом случае клиенту нужно будет подписаться на наш аккаунт, с которого осуществляется рассылка.
После запуска услуги в коммерческую эксплуатацию планируется рассылка уведомлений SMS-сообщениями.
Планы на будущее
Как уже было сказано выше, сервис мониторинга сейчас функционирует в тестовом режиме. В ближайшем будущем мы планируем расширение существующей функциональности. Так, сейчас проходит тестирование функция «публичная статистика» — доступная всем страница с данными по доступности выбранных проверок. Наши клиенты смогут прикрепить ее к отдельному домену, чтобы предоставлять статистику доступности своим пользователям.
В ближайшее время появится возможность периодической рассылки сводной статистики по электронной почте. Появятся и новые типы проверок.
Приглашаем всех наших читателей протестировать услугу мониторинга. Мы будем очень признательны за любые замечания, пожелания и предложения.
Для тех кто не может комментировать посты на Хабре, приглашаем к нам в блог.
Автор: p_a