Компания ХостТрекер является одним из лидеров рынка по предоставлению услуг мониторинга сайтов и различных веб сервисов. Она располагает множеством разнообразных инструментов, которые постоянно совершенствуются с учетом тенденций времени. Как появилась компания? Почему возникает потребность в мониторинге? Как он может помочь при разработке и тестировании сайтов и серверов? Этот обзор раскроет суть вопросов, а также покажет, как простое желание оптимизировать свою работу может трансформироваться в полезный для других продукт, а также как не утратить дух стартаперства и всегда шагать в ногу со своими клиентами.
Вступление, или история стартапа
Каждому, причастному к сфере ИТ, знакомо чувство, когда вроде бы идеально настроенный сервер (сайт, база, программа, сеть) вдруг перестают работать так, как надо. Поиск проблемы может занять долгое время, в течении которого, конечно же, это безобразие будет продолжаться. Или регулярно происходить. Или не будет происходить – но от этого только хуже: ибо когда же это непонятное нечто вылезет в другой раз? А если именно в момент передачи проекта клиенту? Где-то из таких размышлений и появился ХостТрекер. Его отец-основатель добивался хорошей работы от объектов своей основной деятельности, и решил автоматизировать процесс мониторинга. Если бы на тот момент (суровое начало нулевых) имелись надежно работающие сервисы мониторинга – вполне возможно, ХостТрекер никогда бы не появился. А так пришлось писать простенький скрипт для проверок своего зоопарка сайтов. Да вот беда – у простенького скрипта случались те же проблемы, что были упомянуты в начале этого абзаца. Он не всегда работал, и не всегда – правильно. Пришлось скрипт немного оптимизировать и сделать более надежным, в том числе путем дублирования и распределения на нескольких машинах. После череды оптимизаций пришла мысль, что это может быть полезным кому-то еще, и ХостТрекер стал публичным. А после появления множества клиентов – появилась идея монетизировать потраченные усилия. То есть появился наш сервис для решения сугубо личных задач, но в процессе развития стал доступен другим, чтобы помочь им решить те же проблемы, которые в свое время стояли перед нами. Не у всех же есть время написать простенький скрипт. А потом еще чуть-чуть дописать. А потом немного оптимизировать.
Мониторинг: суть
Эта часть обзора поведает о наиболее популярной функции – регулярная проверка для немедленного выявления возникающих проблем с сайтом или другой сущностью, доступной из сети. Эти проверки могут работать по разным протоколам: http(s), icmp (он же пинг), port (проверка любого порта по протоколу TCP) и некоторые другие. Для начала отметим, что есть разные подходы к мониторингу. Существует мониторинг внутренний — когда состояние сайта оценивается за счет ПО, размещенного на этом же сервере. Условно сюда можно отнести также такие инструменты, как Яндекс.Метрика — встраиваемый в код страницы скрипт отсылает информацию о клиентах, которые зашли на сайт, и может делать косвенные выводы о работоспособности сайта. Другой же тип мониторинга — внешний, или, как выражаются юристы, «мониторинг третьим лицом». Он состоит в имитировании захода на сайт реальными пользователями с реальных адресов, и делает выводы по настоящим ответам сервера на посылаемые запросы. Именно об этом методе далее и пойдет речь.
Инфраструктура, или как это устроено
Наиболее просто ее можно разделить на две составляющие: «внутреннюю» и «внешнюю». Первая размещена в облаке и состоит из вычислительных серверов, баз данных, файловых хранилищ и других компонентов. Все это принадлежит и управляется непосредственно сотрудниками компании ХостТрекер. Вторая составляющая – это ноды, или агенты, которые размещены по всему миру и выполняют роль независимых проверяющих серверов, наподобие «тайного покупателя» в магазинах. Они производят проверки сайтов и других проверяемых объектов путем создания стандартных для проверяемого протокола запросов. Если это проверка веб-сайта, то создаются обычные http запросы, которые ничем не отличаются от запросов реальных посетителей сайта. Эти сервера являются полностью независимыми друг от друга и от внутренней составляющей системы. Все, что они делают – это получают от центрального сервера список сайтов для проверки, и отдают ему результат проверок. Часть этих серверов арендуется ХостТрекером, но большинство же принадлежит партнерам, которые предоставляют их на бесплатной основе или же со значительной скидкой, взамен на обратные ссылки или скидки на наши услуги. Или просто по дружбе.
Такое распределение инфраструктуры обусловлено алгоритмом работы сервиса мониторинга.
Алгоритм работы сервиса
Регулярные проверки происходят с предопределенным клиентом интервалом, начиная от 1 минуты. Когда подходит время проверки, сервер посылает задание на один, случайно определенный, агент – часть внешней сети ХостТрекера. Он производит проверку по заданному протоколу и присылает назад ответ проверяемого сервера. Эти результаты обрабатываются уже на внутренней стороне. Если ответ положительный – ничего не происходит, просто появляется запись в базе (клиенту она доступна в виде лога проверок). Если же вдруг замечена ошибка – тогда немедленно создаются задания по проверке этого же сайта еще несколькими, опять же, случайно выбранными, серверами из общей сети. Тогда уже анализируется ответ всех этих серверов. Если ошибка не подтверждена большинством серверов – то это остается в логе, но сохраняется спокойствие. Всяко бывает: лаг сети, перегрузка запросами, хабраэффект, в конце концов. Если же большинство или все агенты подтверждают ошибку – тогда делается предположение, что беда наступила и проблема серьезнее – скорее всего, в этот момент много людей не могут попасть на сайт. А почти для всех коммерческих сайтов это уже прямая потеря денег.
Обработка ошибок и оповещение клиентов
В зависимости от настроек, после выявления проблемы может происходить множество разных вещей. Сразу же происходит первичная диагностика проблемы: записывается код ошибки, если есть, или ответ протокола. По этим данным часто можно строить догадки о причинах ошибки: сбой сети, ошибка сервера или что-либо еще. Но в первую очередь, как правило, клиент заинтересован в том, чтобы узнать о проблеме. Для этого существует возможность зарегистрировать свой телефон, электронную почту или другой канал коммуникации для получения оповещений от ХостТрекера. Они могут быть высланы разным людям, на разные контакты и в разное время. И здесь есть много интересных особенностей. Конечно, сообщение может быть отправлено немедленно, что чаще всего и делается. Но требовательного клиента этим трудно удовлетворить. Во-первых, оказывается, есть «неважные» сайты, по причине краткосрочного простоя которых некрасиво будить уважаемого админа. Во-вторых, есть «важные» люди, которых некрасиво беспокоить из-за каждого чиха. Поэтому ХостТрекер предлагает функцию эскалации оповещений – высылать оповещение на конкретный адрес только через некоторое время после падения сайта, если он к тому времени не самовосстановился. Также, для каждого контакта есть возможность создавать «рабочий график» — задавать временной интервал, в течении которого на него можно слать оповещения. В другое время ХостТрекер тревожить этого человека не будет. Это тоже оказалось удобным для некоторых клиентов. Например, данная конфигурация обеспечит оповещение этого человека с 8 до 19 часов в рабочие дни в тех случаях, когда сайт «лежит» час и более:
В дальнейших публикациях мы опишем множество функций сервиса, которые накопились на текущий момент. Параллельно будут упомянуты истории их появления и разработки, примеры использования и множество других вещей из нашего скромного опыта. Сейчас же позволю себе отметить, что одной из отличительных особенностей сервиса является ориентация на клиента. Множество функций сервиса были разработаны по запросу клиентов, друзей и партнеров, что позволило им решить специфические технические задачи, решение которых своими силами требовало бы намного больших ресурсов. Поэтому мы всегда рады обратной связи и вашим предложениям!
Автор: ХостТрекер