Сайт не поднялся после перезагрузки - разбор причин
Сервер перезагрузили, а сайт не открывается. Разбираем причины в порядке убывания частоты - все проверки делаются с консоли за пару минут.
С чего начать
Смотрим, какие службы поднялись:
systemctl status nginx httpd php-fpm mysqld --no-pager | grep -E 'Active|●'systemctl is-enabled nginx httpd php-fpm mysqld # включены ли в автозапускТри состояния различаются сразу: служба работает, служба остановлена, служба не включена в автозапуск. Последнее и есть самая частая причина «после перезагрузки всё пропало».
Проверяем, отвечает ли сервер вообще:
curl -sI http://127.0.0.1/ | head -3 # изнутри машиныss -lntp | grep -E ':80|:443|:3306' # кто слушает нужные портыОтвет изнутри при недоступности снаружи означает сетевую проблему, а не сбой сайта. На виртуальной машине это обычно потерянный сетевой адрес после перезапуска.
Смотрим журналы за время старта:
journalctl -b -p err --no-pager | tail -30 # ошибки текущей загрузкиtail -30 /var/log/mysqld.logdf -h / /var /home # место, кончившееся до перезагрузкиmount | grep -E ' / | /home ' | grep -o 'ro,\|rw,' # раздел на чтение или на записьdmesg | grep -iE 'i/o error|read-only' | tail -5Журнал загрузки отвечает на вопрос, пыталась ли служба стартовать и почему отказалась. Пустой журнал при остановленной службе означает, что её просто никто не запускал.
Причины
-
Службы не включены в автозапуск примерно 30% случаев
ПризнакПосле ручного запуска всё работает, после перезагрузки снова нет.
ПроверкаСмотрим, включены ли веб-сервер, PHP и база в автозапуск системы.
Что делатьВключаем автозапуск для всех служб окружения: ручные эксперименты его нередко снимают.
-
База не стартовала примерно 25% случаев
ПризнакСайт отдаёт ошибку подключения к базе, веб-сервер при этом работает.
ПроверкаЧитаем журнал базы: там указана причина отказа старта.
Что делатьОсвобождаем место, чиним права на каталог данных или восстанавливаем таблицы по сообщению из журнала.
-
Кончилось место на диске примерно 20% случаев
ПризнакСлужбы падают одна за другой, журналы обрываются на середине.
ПроверкаСмотрим свободное место на всех разделах, включая раздел с журналами.
Что делатьЧистим журналы и старые резервные копии, затем перезапускаем службы по очереди.
-
Виртуальная машина потеряла сеть примерно 15% случаев
ПризнакИзнутри сайт открывается, снаружи недоступен.
ПроверкаСмотрим сетевые интерфейсы и их адреса, сверяем с тем, что ожидает хост.
Что делатьПоднимаем интерфейс и закрепляем адрес: динамический адрес после перезапуска нередко меняется.
-
Файловая система смонтирована только на чтение примерно 10% случаев
ПризнакСайт открывается, но ничего не сохраняется, а журналы пусты.
ПроверкаПроверяем режим монтирования разделов и сообщения ядра о сбоях диска.
Что делатьПеремонтируем раздел на запись после проверки диска: чаще всего это следствие некорректного выключения.
Частые вопросы
Почему после ручного запуска всё работает?
Служба стартует, но не включена в автозапуск. При следующей перезагрузке ситуация повторится, поэтому автозапуск возвращают сразу.
Что проверять на виртуальной машине в первую очередь?
Сеть: адрес после перезапуска мог измениться. Только потом смотрят службы внутри машины.
Как избежать таких сюрпризов?
Проверять сайт после каждой плановой перезагрузки, а не узнавать о сбое от посетителей. Проверка занимает минуту.
Можно ли автоматически поднимать упавшие службы?
Да, штатным перезапуском при отказе в настройках службы. Это лечит симптом, а не причину, поэтому журнал всё равно читают.
Смежное
- BitrixVM и веб-окружение - оглавление подтемы
- Мониторинг сервера: что смотреть до того, как сайт упадёт - как заметить раньше
- Ошибки 500 и 502: где искать причину - когда службы работают, а сайт нет
- Сервер и поиск - устройство сервера целиком
- База данных в веб-окружении: запуск, настройки, доступ снаружи - когда причина именно в базе
- Окружение за прокси и в облаке: адреса, протокол, доступ наружу - когда сайт жив, а снаружи недоступен
- Меню окружения и службы: что где лежит и как перезапустить - какие службы поднимают сайт