Системные журналы systemd-journald не сохраняются между загрузками, несмотря на Storage=persistent

Системные журналы systemd-journald не сохраняются между загрузками, несмотря на Storage=persistent

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

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

/etc/systemd/journald.conf

[Journal]
Storage=persistent
SystemMaxUse=500M
SystemMaxFiles=5

journalctl -b -1

[root@2ba2de9e /var/log/journal] # journalctl --system -b -1
Data from the specified boot (-1) is not available: No such boot ID in journal

Я использую Archlinux Arm на Raspberry Pi.

версии4.14.24-1-ARCH systemd 237.64-1 systemd-sysvcompat 237.64-1

У кого-нибудь есть идеи, почему это происходит? На моем настольном компьютере это работает без проблем?

решение1

Возможно, journald удаляет старые журналы, потому что у вас не хватает места на диске. (Вы не упомянули, как долго после загрузки система -b -1не работает, поэтому я не знаю, много ли у вас журналов с текущей загрузки на тот момент.)

Вы SystemMaxUse=500Mнастроили, но journald может решить использовать менее 500 МБ, если у вас не так много свободного места на диске. Также есть настройка SystemKeepFree=..., которая по умолчанию равна 15% от размера файловой системы (или 4 ГБ, что меньше), и journald будет применять это ограничение сильнее, чем то, сколько места вы разрешаете. Если у вас /var/log/journalтесный раздел, возможно, это может быть частью проблемы.

Вы можете использовать некоторые команды, чтобы проверить, сколько места использует journald, например:

$ journalctl --disk-usage

А также посмотрите, сколько ботинок (и каково их время и идентификаторы) знает journald с помощью:

$ journalctl --list-boots

Они также могут помочь пролить свет на вашу проблему...

Надеюсь, это поможет!

решение2

Мой дистрибутив поставлялся с этим файлом: /etc/systemd/journald.conf.d/volatile-storage.conf В нем была следующая строка

Storage=volatile

Изменяемую часть необходимо изменить на постоянную, в противном случае изменение /etc/systemd/journal.confбудет проигнорировано.

решение3

Продление назеркалоответ, для работы Storage=volatileи каталог должен существовать, а некоторые дистрибутивы не предоставляют это местоположение по умолчанию.Storage=auto/var/log/journal

Поэтому вам нужно создать его и дать команду journaldсбросить на него все, что находится в памяти.

sudo mkdir /var/log/journal     ## Enable persistent logging
sudo journalctl --flush

Связанный контент