Задать вопрос
Все статьи / VDS / Диагностика и исправление неполадок / Почему возникла перезагрузка Linux: проверка времени и журналов,...
Найти результаты:
Период:
с:
 
по:
Помощь в поиске

Помощь в поиске

apple banana
Найти записи, которые содержат хотя бы одно из двух слов.

+apple +juice
Найти записи, которые содержат оба слова.

+apple macintosh
Найти записи, которые содержат слово 'apple', но положение записей выше, если они также содержат 'macintosh'.

+apple -macintosh
Найти записи, которые содержат слово 'apple', но не 'macintosh'.

+apple ~macintosh
Найти записи, которые содержат слово 'apple', но если запись также содержит слово 'macintosh', rate it lower than if row does not. Это более "мягкий" чем поиск '+apple -macintosh', для которого наличие 'macintosh' вызывает что записи не будут возвращены вовсе.

+apple +(>turnover <strudel)
Найти записи, которые содержат слова 'apple' и 'turnover', или 'apple' и 'strudel' (в любом порядке), но ранг 'apple turnover' выше чем 'apple strudel'.

apple*
Найти записи, которые содержат такие слова как 'apple', 'apples', 'applesauce', или 'applet'.

"some words"
Найти записи, которые содержат точную фразу 'some words' (например записи содержащие 'some words of wisdom', но не "some noise words").

Почему возникла перезагрузка Linux: проверка времени и журналов, анализ


Linux считается стабильной и предсказуемой системой, поэтому внезапная перезагрузка почти всегда вызывает вопросы – а иногда и реальные проблемы. Не понимая причины, такие ситуации сложно контролировать, а еще сложнее – предотвращать.

Разберем основные причины перезагрузки Linux-системы и посмотрим, где искать информацию, которая поможет восстановить картину произошедшего.

Типы перезагрузок и их причины

Перезагрузки Linux можно условно разделить на несколько типов – по тому, как система была перезапущена и что стало триггером:

Плановая перезагрузка

Самый безопасный и предсказуемый тип. Система завершает работу служб, синхронизирует данные на диск и только после этого уходит в перезагрузку. Администратор запускает ее вручную через systemd (reboot, shutdown) или панель управления хостингом. 

Следы такой перезагрузки почти всегда есть в логах: фиксируется команда, пользователь и время выполнения. Система успевает корректно закрыть процессы, поэтому последствий для данных, как правило, нет.

Аварийная перезагрузка

Происходит, когда Linux не может продолжать работу в штатном режиме. Чаще всего это связано с критической ошибкой ядра (kernel panic), серьезным сбоем драйвера или проблемами с оборудованием. В таких ситуациях система может перезагрузиться автоматически или зависнуть с последующим ручным рестартом.

Журналы в этом случае могут быть неполными, так как система не успевает записать всю диагностическую информацию. 

Перезагрузка из-за аппаратных сбоев

Иногда сама система Linux вообще ни при чем. Перезагрузка может произойти из-за внешних причин – например, резкого отключения электричества, сбоя источника бесперебойного питания (ИБП), перегрева процессора или отказа оперативной памяти. Тогда компьютер мгновенно выключается или перезапускается. 

Характерный признак – отсутствие записей о завершении работы системы. Логи обрываются резко, без стандартных сообщений о выключении, а информация о причине может находиться уже на уровне BIOS, BMC или гипервизора.

Перезагрузка со стороны виртуализации

В виртуальной машине перезагрузка может произойти не по вине самой системы, а извне – со стороны гипервизора или облачной платформы. Ее мог перезапустить администратор, могла сработать автоматическая перезагрузка после сбоя или возникла проблема на физическом сервере.

С точки зрения виртуальной машины она происходит внезапно. Логи Linux обрываются, как при отключении питания. 

Принудительная перезагрузка

Бывает, что система зависает и не может выключиться нормально. Тогда перезагрузку выполняют принудительно — например, сервер перезагружают через интерфейс управления вроде IPMI и iDRAC или через кнопку reset. Также может сработать watchdog-таймер, и система перезагрузится автоматически. 

Где в Linux хранится информация

Linux почти всегда оставляет следы того, что происходило перед перезагрузкой. Проблема в другом: эти следы лежат в разных местах – часть в системном журнале, часть в логах ядра, часть в файлах вроде wtmp, а иногда нужная информация вообще находится за пределами ОС (железо/гипервизор).

Посмотрим подробнее. 

Systemd-journald: единый системный журнал

Если система работает на systemd (а это большинство современных дистрибутивов), основная информация хранится в журнале journald. Туда попадают сообщения служб, ядра, логины пользователей, события загрузки и выключения. 

Важный момент: журнал бывает постоянным и в памяти. Если настроено хранение только в RAM, то после аварийной перезагрузки часть данных может исчезнуть. Поэтому полезно проверить, включено ли постоянное сохранение журналов.

Логи ядра

Отдельный слой – сообщения ядра: ошибки драйверов, проблемы с дисками, сетевыми интерфейсами, памятью, перегревом и kernel panic. Эти события часто оказываются решающими, потому что именно ядро первым фиксирует аппаратные и низкоуровневые сбои.

Исторически сообщения ядра можно было смотреть в dmesg, а также в файлах /var/log/kern.log или /var/log/messages – зависит от дистрибутива и системы логирования. В systemd большая часть этого дублируется в journald.

Классические текстовые логи в /var/log

Даже если в системе используется journald, многие логи по-прежнему записываются в обычные файлы в папке /var/log. Там можно найти:

  • общий системный лог (/var/log/syslog или /var/log/messages);
  • лог ядра (/var/log/kern.log);
  • лог аутентификации (/var/log/auth.log или /var/log/secure);
  • логи отдельных сервисов (например, SSH, веб-серверов, БД).

При расследовании перезагрузок эти файлы помогают восстановить последовательность событий: кто заходил, какие команды выполнялись и что происходило со службами до падения. 

Учетные журналы системы 

Linux ведет учет загрузок, перезагрузок и входов пользователей в специальных файлах – не как обычные логи, а как записи событий. Два из них особенно полезны:

  • /var/log/wtmp – хранит историю всех успешных входов в систему, а также события перезагрузки (reboot) и выключения (shutdown). 
  • /var/log/btmp – фиксирует неудачные попытки входа (например, по SSH). 

По ним удобно понять, была ли перезагрузка запланированной. 

Логи падений и дампы: если дело в kernel panic

Если перезагрузка произошла из-за сбоя ядра, помогут специальные отчеты – дампы памяти.

В некоторых системах включен механизм kdump, который при падении ядра сохраняет копию оперативной памяти. Эта копия – как снимок момента аварии. В ней можно увидеть, какой процесс, драйвер или ошибка привели к сбою. Без kdump остаются только короткие сообщения в логах. 

Поэтому лучше заранее настроить kdump – так будет проще разобраться при следующей проблеме.

Логи оборудования и гипервизора

Иногда нужной информации нет внутри ОС, потому что событие произошло ниже уровня Linux. Тогда источники другие:

  • журналы iDRAC/iLO/BMC (серверные системы);
  • события BIOS/UEFI (например, по питанию/температуре);
  • логи гипервизора или облачной панели (если это ВМ).

Особенно важно смотреть внешние журналы, если в системе Linux нет записей о завершении работы. Например, логи могут резко обрываться без предупреждений, и часто это означает, что питание было отключено внезапно или перезагрузка вызвана не самой системой, а оборудованием или гипервизором.

Просмотр истории перезагрузок

Чтобы быстро узнать, когда и сколько раз система перезагружалась, есть простая команда – last. Она читает данные из учетного файла wtmp. 

Самый простой и наглядный вариант – показать только перезагрузки:

last reboot

Команда выведет список всех зафиксированных перезапусков системы с датой, временем и длительностью аптайма до следующего события. 

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

last -x

В этом режиме last показывает не только перезагрузки (reboot), но и события shutdown, а также изменения уровня выполнения системы. По этим данным можно понять, была ли перезагрузка штатной или система просто перезагрузилась без корректного завершения работы.

 last не объясняет причину перезагрузки – он фиксирует только сам факт события. Зато он отлично подходит для восстановления хронологии. 

Анализ системных логов

Далее важно понять, что происходило перед этим. Главный помощник в этом – системные логи. В них можно найти последовательность событий: какие службы работали, были ли ошибки и кто что делал. 

Журнал systemd

В современных дистрибутивах Linux основная часть системных событий попадает в журнал systemd-journald. В нем хранится все, что помогает восстановить картину перед перезагрузкой: сообщения служб, ошибки, предупреждения, действия пользователя, а также события загрузки и завершения работы.

Главный инструмент для работы с журналом – команда journalctl. Без параметров она выводит весь журнал целиком. Чтобы посмотреть, что происходило до последней перезагрузки, выполните:

journalctl -b -1

Команда покажет журнал предыдущей загрузки, включая сообщения об ошибках, аварийных завершениях служб и возможных проблемах ядра. Если система была перезагружена корректно, в конце вывода обычно есть записи о штатном завершении работы. Если их нет – это повод задуматься. 

При большом количестве перезагрузок удобно сначала посмотреть список всех запусков системы:

journalctl --list-boots

Команда выведет нумерованный список загрузок с датами и временем, после чего вы сможете выбрать нужную и проанализировать конкретный журнал.

А чтобы ускорить диагностику, его можно отфильтровать по уровню ошибок:

journalctl -p err -b -1


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

Сообщения ядра

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

Посмотреть эти сообщения можно командой: 

dmesg

Она выводит записи, которые система сохранила от ядра – ошибки, предупреждения и сбои. Это быстрый способ увидеть серьезные проблемы без просмотра всех логов.

Обращайте внимание на слова:

  • error – ошибка,
  • fail – сбой,
  • panic – крах ядра,
  • oom – нехватка памяти,

а также на сообщения о тайм-аутах или перезагрузке устройств.

Но после перезагрузки информация о предыдущем состоянии может быть недоступна, если сообщения ядра не сохранялись в системных журналах

Классические логи в /var/log

Даже при использовании systemd, в Linux часто сохраняются привычные текстовые логи в папке /var/log. Они простые, удобные и остаются после перезагрузки – в отличие от journald, который может хранить логи только в памяти.

Основные файлы:

  • syslog (Debian/Ubuntu) или messages (CentOS/RHEL) – основной журнал. В нем видно, что происходило в системе: ошибки, запуск служб, сетевые проблемы и так далее. 
  • kern.log – лог ядра. Это не полный аналог dmesg, но полезный архив с сообщениями ядра, который может сохраниться даже после перезагрузки.
  • auth.log (или secure) показывает, кто входил в систему, использовал sudo и запускал команды. 

Файлы в /var/log регулярно архивируются и сжимаются (например, в .1, .2.gz). Поэтому, если перезагрузка была не сегодня, нужные записи могут лежать в архивных файлах. 

При анализе логов в /var/log почти всегда используют обычные инструменты фильтрации текста. Самый базовый и полезный – grep. Он позволяет быстро вытащить из логов строки с ошибками и предупреждениями, не просматривая файл целиком.

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

grep -i error /var/log/syslog
grep -i fail /var/log/messages
grep -i panic /var/log/kern.log

Чтобы посмотреть события перед перезагрузкой, полезно фильтровать лог по времени. Если известно примерное время перезагрузки, можно сузить поиск:

grep "Jan 15 03:" /var/log/syslog

Чтобы просмотреть архивные логи, их не нужно распаковывать. Просто пропишите:

zgrep -i error /var/log/syslog.1.gz
zgrep -i fail /var/log/messages.2.gz

Логи служб и приложений

Перезагрузка системы не всегда связана с ошибками ядра или аппаратными проблемами. Она может произойти из-за сбоя в работе отдельной службы или приложения. 

Тогда ключевую информацию содержат не общие системные логи, а журналы самого приложения. Большинство служб ведут собственные записи в подкаталогах /var/log/. Например:

  • /var/log/nginx/ – для Nginx,
  • /var/log/mysql/ – для MySQL,
  • /var/log/postgresql/ – для PostgreSQL,
  • /var/log/apache2/ – для Apache.

В этих файлах можно найти ошибки запуска, сообщения о тайм-аутах соединений, утечки памяти и резкий рост числа записей перед перезагрузкой.

Если служба управляется через systemd, ее логи доступны командой:

journalctl -u <имя-сервиса.service> 

Она позволяет быстро получить только те записи, которые относятся к нужному сервису.

Аппаратные причины

Причина перезагрузки Linux может быть вне самой операционной системы. Аппаратные сбои могут приводить к внезапной перезагрузке или отключению питания без каких-либо явных записей о корректном завершении работы. В таких случаях логи внутри ОС либо отсутствуют, либо обрываются в один момент.

Причина

Как выглядит

Что проверить

Где искать следы

Питание

Перезагрузка происходит резко, без завершения служб и предупреждений со стороны системы

ИБП, блок питания, стабильность электросети, состояние кабелей

Журнал BMC, логи ИБП, события гипервизора

Перегрев

Система перезагружается под нагрузкой или спустя некоторое время работы 

Температуры CPU и GPU, систему охлаждения, загрязнение радиаторов

Датчики lm-sensors, журнал BMC, сообщения ядра

Оперативная память

Перезагрузки будто бы случайные, возможны странные ошибки приложений

Тесты памяти, логи ECC, совместимость модулей

Журнал BMC, сообщения EDAC, системный журнал

Диск или контроллер

Перед перезагрузкой наблюдаются подвисания и ошибки ввода-вывода

SMART-статус дисков, состояние RAID, кабели и контроллеры

dmesg, journald, логи RAID-контроллера

Материнская плата

Непредсказуемые перезагрузки без явной нагрузки

Состояние компонентов, версию BIOS, стабильность питания

Журнал BMC, события BIOS, аппаратная диагностика

Процессор

Система перезагружается при высокой нагрузке или стресс-тестах

Температуры, микрокод, питание процессора

Сообщения MCE, journald, журнал BMC

Сетевая или HBA карта

Сначала возникают ошибки устройств

Драйверы, прошивку, слот PCIe, кабели и модули

dmesg, journald, логи драйверов

Аппаратный watchdog

Система зависает и не отвечает, а потом перезагружается

Настройки watchdog, причины зависаний, драйвер watchdog

journald, dmesg, журнал BMC

Виртуализация на хосте

Гостевая система перезагружается без видимых причин внутри ОС

События хоста, перегрузку ресурсов, политику авто-восстановления

Логи гипервизора, панель управления облака

Автоматические перезагрузки

Не все перезагрузки Linux происходят по инициативе администратора или из-за аварий. В ряде случаев система перезагружается автоматически – по заранее заданным правилам или в ответ на определенные условия.

Основные сценарии автоматической перезагрузки:

  • Обновления ядра и системных пакетов. В некоторых дистрибутивах настроена автоматическая установка обновлений, включая ядро. После этого может начаться автоматическая перезагрузка или запускается таймер до перезапуска.
  • Настройки systemd. Systemd поддерживает автоматический перезапуск системы при определенных условиях. Например, при срабатывании параметров CrashAction или RebootWatchdogSec система может уйти в перезагрузку после критического сбоя или зависания.
  • Watchdog-механизмы. Программный или аппаратный watchdog следит за тем, отвечает ли система. Если она перестает реагировать в течение заданного времени, watchdog инициирует перезагрузку. 
  • OOM Killer и критическая нехватка памяти. При сильном дефиците оперативной памяти ядро завершает процессы, но в крайних случаях это может привести к нестабильности и последующей перезагрузке.
  • Планировщики заданий и скрипты. Перезагрузка может быть задана через cron, systemd-таймеры или пользовательские скрипты. 
  • Политики виртуализации и облака. В виртуальной среде автоматическая перезагрузка может выполняться со стороны хоста – например, при сбое физического сервера или миграции ВМ.

Автоматические перезагрузки, в отличие от аварийных, почти всегда отражаются в логах. 

Заключение

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

Ключ к стабильности – действовать по порядку:

  1. Сначала узнайте, когда и сколько раз система перезагружалась – команда last поможет с этим. 
  2. Затем изучите, что происходило перед этим: проверьте логи – syslog, kern.log, auth.log и journalctl. 
  3. Далее выясните, не была ли перезагрузка инициирована автоматически – например, обновлениями, watchdog или таймерами systemd. 
  4. И только если не нашли причину – переходите к анализу оборудования и внешних систем: BMC, iDRAC, гипервизор или облачная платформа. 

Так вы сэкономите себе время и быстрее найдете причину перезагрузки.
 

Предыдущая статья
Переполнение inodes
Следующая статья
Тестирование сети в Linux: команды для диагностики и измерения...