Сайт упал: план действий на первые 10 минут
Когда сайт лежит, худшее, что можно делать, — метаться: перезагружать всё подряд, звонить всем сразу и менять настройки наугад. У инцидента есть правильный порядок действий, и он укладывается в десять минут. Это план для владельца сайта — по минутам, с командами и ссылками на подробные разборы. Распечатайте или сохраните: читать его лучше до падения, а не во время.
Минуты 0–2: подтвердить и оценить масштаб
Первый вопрос — не «что сломалось», а «для кого сломалось». Откройте сайт в инкогнито и с телефона через мобильный интернет; параллельно — любой онлайн-чекер доступности. Три исхода: лежит только у вас (выдыхайте и чините свой интернет), лежит у всех (настоящий инцидент — дальше по плану), лежит частично — у части городов или операторов (региональная история: блокировка, сбой оператора, гео-фильтр — см. разбор проверки доступности из России). Если у вас настроен мониторинг — масштаб уже виден по карте проверок, и эти две минуты экономятся целиком.
Минуты 2–5: определить слой по симптому
Вид ошибки — это адрес поломки. Не гадайте: посмотрите, что именно показывает браузер, и идите по таблице:
| Что видите | Сломанный слой | Куда бежать |
|---|---|---|
| NXDOMAIN / NAME_NOT_RESOLVED | Домен или DNS | whois (paid-till!), NS-серверы — разбор в статьях про NXDOMAIN и whois |
| CONNECTION_REFUSED / TIMED_OUT | Сервер или сеть | Панель хостинга: жива ли машина; порт 443 снаружи; статус-страница хостера |
| 502 / 504 | Приложение за прокси | Лог ошибок, состояние php-fpm/бэкенда — разборы 502 и 504 |
| 503 | Перегрузка или забытый maintenance | Режим обслуживания, лимиты тарифа — разбор 503 |
| «Подключение не защищено» | Сертификат | Срок и цепочка — разбор NET::ERR_CERT_* |
| Белый экран / 500 | Код сайта | Что менялось последним? Лог ошибок приложения |
Минуты 5–10: три вопроса и самое безопасное действие
Вопрос 1: что менялось последним? Большинство инцидентов рукотворны: деплой, обновление плагина, правка конфига, работы подрядчика. Если падение совпало с изменением — откатывайте изменение, не разбираясь в причинах. Разбор причин — потом, на живом сайте.
Вопрос 2: что говорит хостер? Статус-страница провайдера и его телеграм-канал — до того, как писать тикет: если авария на их стороне, ваша задача — не чинить, а ждать и коммуницировать. Если у них «всё зелёное» — тикет с конкретикой: время начала, вид ошибки, что уже проверили.
Вопрос 3: поможет ли перезапуск? Перезапуск сервиса (php-fpm, nginx, приложения) — легитимная первая помощь: он лечит зависания и утечки, ничего не ломая. Перезагрузка всего сервера — уже рискованнее (вспомните сервисы не в автозагрузке), а «поменяю заодно настройки» во время инцидента — прямой путь ко второму инциденту поверх первого. Правило: во время пожара — только обратимые действия по одному за раз, с проверкой результата после каждого.
Пока идёт диагностика, кто-то (или вы между шагами) должен сообщить тем, кого это касается: заглушка с честным «ведём работы» (правильно отдавать её с кодом 503 — рецепт здесь), пост в соцсетях/канале, предупреждение менеджерам, принимающим звонки. Молчание во время простоя стоит дороже самого простоя: клиенты прощают аварии и не прощают неизвестность.
Весь план одним экраном
| Минуты | Действие | Результат |
|---|---|---|
| 0–2 | Инкогнито + мобильная сеть + чекер (или карта мониторинга) | Масштаб: у меня / у всех / частично |
| 2–5 | Посмотреть вид ошибки → таблица слоёв | Диагноз: домен / сервер / приложение / сертификат |
| 5–10 | Что менялось? Что у хостера? Откат или перезапуск — по одному действию | Сайт жив — или предметный тикет/звонок |
| Параллельно | Заглушка 503 + сообщение клиентам и команде | Никто не в неизвестности |
| После | Постмортем на 4 строки | Следующий инцидент короче или не случится |
После: полчаса, которые окупятся при следующем инциденте
Когда сайт ожил, не расходитесь сразу — зафиксируйте по горячим следам мини-постмортем из четырёх строк: когда упал и когда поднялся (по данным мониторинга, не по ощущениям), что было причиной, что помогло, что сделать, чтобы не повторилось. Последняя строка — самая ценная: именно из неё рождаются бэкапы, которые делаются, алерты, которые приходят, и чек-листы деплоя. Сколько стоил час простоя — можно прикинуть по методике из статьи о цене нестабильности: эта цифра отлично помогает приоритизировать пункт «чтобы не повторилось».
И главный вывод почти каждого постмортема: о падении нужно узнавать не от клиентов. Все шаги «минут 0–2» — подтверждение, масштаб, география — мониторинг делает автоматически и присылает готовыми в первые же минуты инцидента, вместе с видом ошибки, по которому вы сразу открываете нужную строку таблицы выше. Как настроить уведомления так, чтобы они разбудили, но не задолбали, — в статьях про уведомления о падении и каналы оповещения.
Пруфен сокращает первые пять минут плана до нуля: HTTP-проверки из 13 точек показывают масштаб и географию сразу, уведомление приходит в Email, Telegram, Макс или звонком через интервал проверки — от 2 минут, а задержка уведомлений отсеивает секундные мигания от настоящих падений. Вы начинаете с минуты 5 — с уже готовым диагнозом слоя.
Частые вопросы
Чем этот план отличается от статьи «Сайт не работает: у кого проблема»? Та статья — диагностика для любого пользователя: понять, на чьей стороне поломка. Эта — регламент действий владельца, когда сломалось у вас: порядок, приоритеты, коммуникация. Работают в паре.
Стоит ли сразу звонить разработчику/подрядчику ночью? После минут 0–5: когда вы знаете масштаб и слой, звонок превращается из «всё пропало!» в «с 2:40 сайт отдаёт 502 у всех, что деплоили вечером?» — такой звонок короче и продуктивнее. Исключение — если по таблице слой явно «код сайта», а доступа к нему у вас нет: тогда звоните сразу.
Сайт «поднялся сам». Можно забыть? Худшее решение: самопроизвольные падения повторяются, потому что причина осталась. Минимум — посмотреть логи за время инцидента и историю мониторинга: как долго лежал, из каких точек было видно. «Само прошло» — это не диагноз, а отложенный инцидент.
Что положить в «тревожный чемоданчик» заранее? Доступы: панель хостинга, регистратор, DNS, SSH — не «у Миши», а в командном хранилище. Контакты поддержки хостера. Этот план. И мониторинг с работающими уведомлениями — он превращает весь раздел «минуты 0–5» в одно входящее сообщение.