Журналирование ядра
100%

Журналирование · Урок 4

Журналирование ядра

Узнайте, как запрашивать текущие и сохранённые сообщения ядра Linux через dmesg и journalctl.

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

Чтение кольцевого буфера ядра

dmesg читает сообщения ring buffer ядра:

$ dmesg --human

Буфер имеет конечную ёмкость, поэтому новые сообщения могут перезаписать старые. Доступ также может быть ограничен привилегированными пользователями. dmesg --follow следует новым сообщениям в поддерживающих реализациях; остановите его после ограниченного воспроизведения.

Почему старое событие ядра может отсутствовать в текущем выводе dmesg?

Читаемые временные метки

Исходные временные метки ядра обычно отсчитываются от загрузки. dmesg --ctime или --human отображает календарное время, но преобразование зависит от истории часов и может быть неточным при их изменении после загрузки. Когда важна точная последовательность, сохраняйте время относительно загрузки.

Почему преобразованные календарные метки dmesg нужно трактовать осторожно?

Запрос сохранённых записей ядра

На хосте systemd запросите ядро текущей загрузки:

$ journalctl -k -b

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

$ journalctl --list-boots
$ journalctl -k -b -1

Традиционная маршрутизация syslog может создать /var/log/kern.log или другой файл, но это зависит от конфигурации. /var/log/dmesg также не универсален и может быть только снимком времени загрузки.

Какая команда запрашивает сообщения ядра из предыдущей сохранённой загрузки?

Исследование события ядра

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

$ journalctl -k -b --since '10 minutes ago'
$ lspci -k
$ lsblk

Используйте только относящиеся к подсистеме инструменты. До перезагрузки драйвера, отвязки устройства или reboot оцените влияние на хранилище, сеть, консоль и службы и сохраните восстановительный доступ.

Как лучше всего реагировать на одну строку warning ядра?

Урок завершён

Вы завершили Журналирование ядра

Теперь вы можете отличать сообщения живого буфера ядра от сохранённых журналов.

  • Читать конечный ring buffer через dmesg.

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

  • Запрашивать текущие и прежние загрузки через journalctl -k.

  • Сопоставлять сообщения ядра до разрушительных изменений.

Сохраните прогресс

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

Создать бесплатный аккаунт
Следующий Урок
Назад к Журналирование