Зачем сайту нужен мониторинг аптайма
Сайт мониторят, чтобы узнать о поломке раньше клиентов, а не после них. Без монитора первое сообщение о сбое обычно приходит от посетителя - в соцсетях, по почте или по телефону, и к этому моменту сайт уже лежит столько времени, сколько понадобилось, чтобы кто-то решил вам об этом сказать.
Что кладет сайт
Сайт может перестать отвечать по причинам, никак не связанным друг с другом. Обычный список:
- Плохой код, включая деплой, прошедший ревью и сломавшийся в проде
- Сбои хостинга, от одной машины до целого дата-центра
- Достигнутые лимиты хостинга: пропускная способность, число соединений, квота CPU, диск
- Попытки взлома приложения или сервера
- DDoS-атаки, которые заваливают хост до тех пор, пока он не перестанет отвечать вообще на любой запрос, хороший или плохой
- Просроченная регистрация домена
- Просроченный TLS-сертификат, из-за которого каждый браузер отказывается устанавливать соединение
Большинство из этого - в вашей власти. Можно проверять код, подбирать хостинг под нагрузку, вовремя продлевать домен и сертификат. Попытки взлома и DDoS-трафик - нет: их можно только ограничивать и выдерживать. Общее у всех семи пунктов то, что сервер редко сообщает о них сам. Машина, у которой нет доступа в интернет, не может отправить сообщение об этом, а сертификат, истекший в полночь, не заводит тикет.
Во что обходится сбой, пока вы о нем не знаете
Посетитель, увидевший "Server Not Found", один раз обновляет страницу, проверяет, правильно ли набран адрес, а затем ищет сайт, который работает. Окно, в течение которого его еще можно удержать, коротко, и оно закрывается так, что никто вам об этом не сообщает.
Арифметику легко посчитать для собственного сайта. Возьмите среднюю сумму заказа в $25 и 50 покупающих посетителей в час: этот час стоит около $1 250, и час простоя обходится в те же $1 250. В аналитике этот час нигде не зафиксирован как потеря: несостоявшиеся заказы оставляют только провал, который на следующей неделе спишут на что-то другое. Медленные страницы наносят такой же ущерб, только тише. Сайт отвечает, проверка проходит, а посетители все равно уходят.
Как мониторинг меняет последовательность событий
Мониторинг заменяет "клиент нам сказал" на "проверка провалилась в 03:14 из четырех локаций".
- Он запускает отсчет раньше. Время на устранение считается с момента, когда вы узнали о проблеме, поэтому все, что сокращает разрыв до обнаружения, сокращает сам сбой.
- Он дает вам доказательства. Какая проверка провалилась, из каких локаций, с каким кодом состояния или таймаутом, и когда был последний успешный результат. Это уже большая часть диагностики еще до того, как вы открыли терминал.
- Он показывает разницу между "лежит для всех" и "недоступен из одной сети", потому что проверки идут одновременно из многих мест, а не с одного сервера.
Внешняя проверка - это как раз то, что не может заменить серверный лог. Если проблема в сетевом маршруте, DNS-записи или сертификате, сервер вообще не видит никакой ошибки. Именно запуск одного и того же запроса из многих стран, что и есть идея распределенного мониторинга доступности, делает региональный сбой видимым как региональный сбой, а не как загадку.
Что мониторить помимо "работает / не работает"
Проверка доступности отвечает на один вопрос. То, что ломает сайт, обычно сначала становится заметно в других местах:
- Аптайм и даунтайм сервера, базовая проверка
- Время отклика, которое ухудшается раньше, чем отказывает совсем
- Нагрузка на CPU, RAM и диск сервера
- Нагрузка на базу данных и задержка запросов
- Истечение срока домена
- Истечение срока сертификата
- Содержимое страницы, чтобы поймать сайт, который отвечает 200, но показывает страницу ошибки
Истечение срока домена и сертификата заслуживают отдельного слова, потому что это два сбоя с заранее известной датой. Оба полностью предотвратимы оповещением, выставленным за недели вперед.
Как снизить простои, когда вы их видите
- Поставьте на сайт монитор снаружи, с интервалом достаточно коротким, чтобы сбой измерялся минутами, а не часами. Сначала запустите разовую HTTP-проверку из нескольких локаций, чтобы увидеть, как сайт отвечает сегодня.
- Выбирайте хостинг с запасом по мощности и проверенной вами репутацией, а не той, о которой вам рассказали. "Безлимитный" тариф не безлимитный.
- Держите приложение, серверное ПО и плагины обновленными. Взломанный сайт теряет не только доступность: он теряет доверие клиентов и позиции в поисковых системах.
- Настройте оповещения об истечении срока для домена и каждого сертификата с запасом времени на продление.
Разовая проверка против постоянного знания о сбое
Проверка, запущенная вручную, отвечает только за тот момент, когда вы ее запустили. Монитор отвечает непрерывно и сообщает, когда ответ меняется. HostTracker следит за сайтами с 2004 года и сейчас наблюдает более чем за 500 000 сайтов из 300+ точек проверки в 158 городах, охватывая 13 типов мониторов, с оповещениями по email, SMS, голосовым звонком, в Slack, Telegram и другими способами. О том, что покрывают эти проверки, читайте в разделе возможностей, о самой распространенной отправной точке - в руководстве по HTTP-проверке, а связанные термины - в остальном разделе о понятиях мониторинга.