Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


unix-linux:systemd:how-display-systemd-units-log-messages-from-previous-boots-under-centos-and-debian-linux

Включение режима сохранения логов служб systemd через journald в Linux

При отладке работы служб (юнитов) systemd в Linux может возникать необходимость в логах, которые были сгенерированы юнитами на этапе выключения системы. В конфигурации по умолчанию служба systemd-journald из состава systemd позволяет увидеть логи только текущей сессии работы системы, то есть те логи, которые были сгенерированы после последней загрузки ОС. Чтобы убедиться в этом, достаточно спросить у journalctl список сохранённых сессий загрузки:

# journalctl --list-boots

Мы увидим, что доступна только одна сессия с индексом «0», то есть последняя сессия с момента загрузки системы. Если же нам потребуется увидеть логи того или иного юнита systemd, которые имеи место быть до перезагрузки системы, то для этого нужно будет включить автоматическое сохранение логов.

Создадим каталог для хранения логов:

# mkdir /var/log/journal

Сообщим systemd о новом месторасположении и перезапустим службу systemd-journald:

# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald

Отредактируем конфигурационный файл journald.conf:

# nano /etc/systemd/journald.conf

Минимальное изменение, которое нам потребуется это – удаление комментария в начале строки с параметром Storage:

journald.conf
[Journal]
Storage=auto
...

После этого мы можем перезагрузить систему и убедиться в том, что теперь список загрузок стал расширяться…

# journalctl --list-boots

… и для любого юнита systemd появилась возможность видеть логи прошлых сессий работы системы. Например, чтобы увидеть лог службы sssd в предыдущей сессии работы системы, можем выполнить такую команду :

# journalctl --boot=-1 --unit=sssd

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

# journalctl --unit=sssd

В таком режиме анализировать и отлаживать работу юнитов systemd становится ощутимо удобней.

Аналогичным образом теперь нам будет доступно более удобное разделение системного журнала на события до и после перезагрузки

# journalctl --system



Проверено на следующих конфигурациях:

Версия ОС Версия systemd
Debian GNU/Linux 8.10 (jessie) systemd 215
Debian GNU/Linux 8.11 (jessie) systemd 215
Debian GNU/Linux 9.5 (stretch) systemd 237
CentOS Linux release 7.5.1804 (Core) systemd 219

Автор первичной редакции:
Алексей Максимов
Время публикации: 20.09.2018 15:23

Обсуждение

Ваш комментарий:
 

unix-linux/systemd/how-display-systemd-units-log-messages-from-previous-boots-under-centos-and-debian-linux.txt · Последние изменения: 20.09.2018 15:49 — Алексей Максимов