===== Включение режима сохранения логов служб systemd через journald в Linux ===== {{:unix-linux:systemd:pasted:20180920-154849.png }} При отладке работы служб (юнитов) **systemd** в **Linux** может возникать необходимость в логах, которые были сгенерированы юнитами на этапе выключения системы. В конфигурации по умолчанию служба **systemd-journald** из состава systemd позволяет увидеть логи только текущей сессии работы системы, то есть те логи, которые были сгенерированы после последней загрузки ОС. Чтобы убедиться в этом, достаточно спросить у **journalctl** список сохранённых сессий загрузки:
# journalctl --list-boots
{{ :unix-linux:systemd:pasted:20180920-153720.png }} Мы увидим, что доступна только одна сессия с индексом "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'': [Journal] Storage=auto ... {{ :unix-linux:systemd:pasted:20180920-153851.png }} После этого мы можем перезагрузить систему и убедиться в том, что теперь список загрузок стал расширяться…
# journalctl --list-boots
{{ :unix-linux:systemd:pasted:20180920-153601.png }} … и для любого юнита systemd появилась возможность видеть логи прошлых сессий работы системы. Например, чтобы увидеть лог службы **sssd** в предыдущей сессии работы системы, можем выполнить такую команду :
# journalctl --boot=-1 --unit=sssd
{{ :unix-linux:systemd:pasted:20180920-154031.png }} Если же опустить параметр выбора индекса загрузки, то мы получим общий список, разделённый событиями загрузки
# journalctl --unit=sssd
{{ :unix-linux:systemd:pasted:20180920-154159.png }} В таком режиме анализировать и отлаживать работу юнитов systemd становится ощутимо удобней. Аналогичным образом теперь нам будет доступно более удобное разделение системного журнала на события до и после перезагрузки
# journalctl --system
{{ :unix-linux:systemd:pasted:20180920-154410.png }} \\ ---- Проверено на следующих конфигурациях: ^ Версия ОС ^ Версия 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 | | Debian GNU/Linux 10.0 (Buster) | systemd 241 | | CentOS Linux release 7.5.1804 (Core) | systemd 219 | ---- {{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 20.09.2018 15:23 {{tag>Linux Debian CentOS systemd unit journald "systemd-journald" journalctl Logging Troubleshooting}} ~~DISCUSSION~~