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を使用しています

バージョン4.14.24-1-ARCH systemd 237.64-1 systemd-sysvcompat 237.64-1

なぜこのようなことが起こるのか、誰か分かるでしょうか? 私のデスクトップ マシンでは問題なく動作しているのですが?

答え1

ディスク容量が不足しているため、journald が古いログを削除している可能性があります。(起動後どのくらいの期間が経過しても-b -1動作しないかについては触れられていないため、その時点での現在の起動からのログが多数あるかどうかはわかりません。)

設定は完了していますSystemMaxUse=500Mが、空きディスク容量があまりない場合、journald は 500 MB 未満を使用することを決定する可能性があります。また、SystemKeepFree=...ファイルシステムのサイズの 15% (または 4 GB のいずれか小さい方) にデフォルト設定されている設定もあり、journald は許可されている容量よりもその制限を厳しく適用します。/var/log/journalパーティションが狭い場合は、それが問題の一部である可能性があります。

次のようなコマンドを使用して、journald が使用している容量を確認できます。

$ journalctl --disk-usage

また、journald が認識しているブートの数 (およびその時間と ID) も次のように確認できます。

$ 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

関連情報