Переходите с UptimeRobot? Импортируйте мониторы одним кликом по ключу API только для чтения.Начать бесплатно →
  1. Главная
  2. Блог
  3. Руководства

Сайт не работает: что делать в первые 15 минут

Чек-лист на первую четверть часа сбоя: подтвердите его, найдите сломанный уровень пятью командами, устраните причину, сообщите клиенту и не пропустите новый.

Руководства

Сообщение приходит в неудобное время: «сайт не работает». У вас есть несколько минут, прежде чем вопрос изменится с «что случилось» на «почему никто не заметил». Вот порядок, в котором мы действуем. Он написан для тех, кто ведёт несколько сайтов и не может позволить себе импровизировать.

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

Первые 15 минут сбоя Шкала времени из четырёх этапов. Минуты 0–2: подтвердить сбой. Минуты 2–6: найти сломанный уровень. Минуты 6–12: устранить причину. Минуты 12–15: сообщить клиенту и записать. 0 мин2 мин6 мин12 мин15 мин 1. ПодтвердитьНе работает лиу всех? 2. НайтиDNS, TLS, HTTP,сервер, приложение 3. ПочинитьСначала откатитьпоследнее изменение 4. Сообщить, записатьСообщение клиенту,хронология
Не пропускайте второй этап. Больше всего времени при сбое тратят на починку не того уровня.

Минуты 0–2: подтвердите сбой

Прежде чем что-либо трогать, убедитесь, что сайт не работает у других людей, а не только у того, кто о нём сообщил.

  1. Откройте сайт на телефоне с отключённым Wi-Fi. Если он загрузился, проблема в сети того, кто сообщил, в устаревшем кэше DNS или в расширении браузера.
  2. Используйте проверку не из вашей сети. Бесплатный инструмент «Работает ли сайт» запрашивает URL нашей проверкой и показывает код ответа и время ответа, а это говорит больше, чем «не загружается».
  3. Из терминала получите код ответа и время:
curl -sS -o /dev/null -w '%{http_code}  total %{time_total}s  connect %{time_connect}s\n' https://example.com

000 означает, что соединение не установилось (DNS, брандмауэр или сервер выключен). Число означает, что сервер ответил, и оно подсказывает, куда смотреть; справочник кодов ответа HTTP объясняет каждый из них простыми словами.

Задайте ещё один вопрос, прежде чем идти дальше: что менялось за последний час? Развёртывание, обновление плагина или темы, правка DNS, правило брандмауэра или Cloudflare, перезагрузка сервера, продлённый или истёкший сертификат. Большинство сбоев следует за изменением, и откат изменения обычно самое быстрое решение.

Минуты 2–6: найдите сломанный уровень

Двигайтесь снаружи внутрь. Каждая команда исключает один уровень.

DNS. Разрешается ли имя и в тот ли адрес, которого вы ждёте?

dig +short example.com
dig +short NS example.com

Нет ответа или адрес вам незнаком — значит, дело в DNS или в истёкшем домене. Быстрая проверка даты регистрации стоит десяти минут догадок: воспользуйтесь инструментом срока действия домена.

TLS. Действителен ли сертификат прямо сейчас?

echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -dates

notAfter в прошлом — это истёкший сертификат. Проверка SSL показывает то же самое вместе с цепочкой, а статья о том, что делать, если сертификат истёк, описывает восстановление.

HTTP. Что говорит сервер? Воспользуйтесь таблицей ниже.

Что вы видитеЧто это обычно значитПервый шаг
Connection refused или тайм-аут (000)Сервер выключен, брандмауэр, неверный IPПроверьте страницу статуса хостинга, затем сервер
502, 504Прокси не может достучаться до приложения, или приложение слишком медленноеПерезапустите процесс приложения, прочитайте его журнал
503Приложение перегружено или на обслуживанииПроверьте CPU, память и флаг обслуживания
500Ошибка приложенияПрочитайте журналы ошибок приложения и веб-сервера
521, 522, 523, 524 (Cloudflare)Cloudflare не может достучаться до вашего originПроверьте origin напрямую, проверьте брандмауэр origin
403Блокирует WAF, плагин безопасности или правилоПосмотрите последнее изменение брандмауэра или плагина
200, но страница неправильнаяСтраница с ошибкой базы данных, пустой шаблон, испорченный кэшОткройте страницу и прочитайте её

Сервер. Если вы можете войти, три команды покрывают большинство причин:

df -h            # full disk is a classic
free -m          # out of memory, swapping
systemctl status nginx php8.3-fpm   # or apache2, your app service
tail -n 100 /var/log/nginx/error.log

Приложение. Белая страница или 500 сразу после развёртывания указывает на код. Для WordPress переименуйте каталог плагинов через SFTP, чтобы разом исключить плагины; руководство по мониторингу WordPress перечисляет обычных подозреваемых.

Минуты 6–12: устраните причину, начиная с самого малого изменения

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

  • Развёртывание: откатитесь на предыдущий выпуск, прежде чем отлаживать вперёд.
  • Обновление плагина или темы: отключите последний обновлённый плагин.
  • Переполненный диск: удалите старые журналы и резервные копии, затем найдите то, что его заполняет.
  • Упавший процесс: перезапустите его, затем выясните, почему он упал. Перезапуск без чтения журнала — это сбой, который повторится в 3 часа ночи.
  • Истёкший сертификат или домен: сначала продлите, кто был виноват, выясните потом.
  • Изменение DNS: верните старую запись; распространение занимает столько, сколько указывает TTL.
  • Всплеск трафика: если сервер просто перегружен, включите кэш или поставьте сайт за CDN, а масштабируйтесь уже после инцидента.

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

Минуты 12–15: сообщите клиенту и запишите

Отправьте это, ещё не зная окончательной причины:

Мы знаем, что сайт недоступен с 14:07. Мы работаем над этим и сообщим новости до 14:45. С вашей стороны никаких действий не требуется.

Обновите сообщение, когда появится причина, и ещё раз, когда всё починено: что случилось, как долго длилось, что вы изменили. Если у клиента есть страница статуса, обновите её, чтобы вопросы прекратились.

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

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

Сбой, о котором вы узнаёте от клиента, — это пробел в мониторинге. Минимальная настройка:

  1. HTTP-проверка главной страницы каждую минуту с проверкой ключевого слова, которое появляется, только когда страница отрисована правильно.
  2. Проверка страницы, которая приносит деньги (оформление заказа, запись, форма контактов).
  3. Проверки срока действия SSL и домена, которые оповещают до даты, а не после неё.
  4. Канал оповещений, который вы читаете ночью. Почта работает на всех тарифах. Telegram с кнопкой подтверждения одним нажатием требует платного тарифа.
  5. Вторая проверка перед отправкой оповещения, чтобы один потерянный пакет вас не разбудил.

В Tenium 30 мониторов с интервалом проверок 5 мин бесплатны; Starter ($7) проверяет с интервалом 1 мин и добавляет оповещения в Telegram, проверки SSL и срока действия домена. Страница мониторинга сайта описывает проверки, а сравнение Tenium и UptimeRobot показывает, как соотносятся тарифы, если вы уже пользуетесь другим сервисом.

Короткий чек-лист на память

  • Подтвердить из второй сети и проверкой извне
  • Спросить, что менялось за последний час
  • curl — код и время; dig — имя
  • Даты сертификата и домена
  • Диск, память, процесс, журнал ошибок
  • Откатить последнее изменение
  • Написать клиенту в течение 15 минут
  • Записать начало, обнаружение, устранение, причину

Частые вопросы

Как понять, что сайт не работает у всех, а не только у меня?

Откройте его через мобильный интернет, затем проверьте с сервера, который не находится в вашей сети. Бесплатный инструмент вроде страницы Tenium «Работает ли сайт» запрашивает сайт нашей проверкой и показывает код ответа и время ответа. Если проверка получает нормальный ответ, а вы нет, проблема в вашей сети, кэше DNS или браузере, а не в сайте.

Какая самая частая причина того, что сайт перестаёт работать?

Изменение, сделанное незадолго до этого: развёртывание, обновление плагина или темы, правка DNS, правило брандмауэра либо истёкший сертификат или домен. Прежде чем искать где-то ещё, спросите, что менялось за последний час.

Стоит ли сообщить клиенту до того, как я узнаю причину?

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

Как узнавать о простое раньше клиента?

Подключите внешний монитор, который проверяет сайт каждую минуту и оповещает вас по почте или в Telegram. На тарифе Free вы получаете 30 мониторов с интервалом проверок 5 мин; Starter ($7) проверяет с интервалом 1 мин и добавляет оповещения в Telegram.


Читайте также

Связанные страницы Tenium

Начните следить за первым сайтом бесплатно

30 мониторов бесплатно, проверки из 2 регионов, без банковской карты. Проверка SSL и срока действия домена — от $7 в месяц.