CentOS 7システムでjournalctl
を実行すると、最後の起動後に生成されたメッセージが出力されるだけです。
コマンド
# journalctl --boot=-1
プリント
Failed to look up boot -1: Cannot assign requested address
ステータス1で終了します。
現在のFedoraシステムと比較すると、CentOS 7には/var/log/journal
がありません(そしてjournalctl
は--list-boots
を提供していません)。
したがって、最後の起動日より前に書き込まれたログメッセージを表示する方法についての私の質問。
または、おそらくこの機能をCentOS 7で有効にする必要がありますか?
(journalctl
manページには、バージョン番号として「systemd 208」がリストされています。)
CentOS 7では、ログメッセージの永続的なストレージを有効にする必要があります。
# mkdir /var/log/journal
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
それ以外の場合、ジャーナルログメッセージはブート間で保持されません。
journald
が以前のブートからのログメッセージを保持するかどうかは、/etc/systemd/journald.conf
を介して構成されます。 CentOS 7でのデフォルト設定は次のとおりです。
[Journal]
Storage=auto
journald.conf man page はauto
を次のように説明しています。
「volatile」、「persistent」、「auto」、「none」のいずれか。 「揮発性」の場合、ジャーナルログデータはメモリ内、つまり/ run/log/journal階層(必要に応じて作成される)の下にのみ保存されます。 「永続的」の場合、データはディスクに、つまり/ var/log/journal階層(必要に応じて作成されます)の下に保存され、/ run/log/journal(必要に応じて作成されます)にフォールバックします。早期起動、およびディスクが書き込み可能でない場合。 「auto」は「永続的」に似ていますが、ディレクトリ/ var/log/journal必要に応じて作成されません。その存在により、ログデータの移動先が制御されます。
(鉱山を強調)
systemd-journald.service man page はこうして次のように述べています:
デフォルトでは、ジャーナルはログデータを/ run/log/journal /に保存します。/run /は揮発性であるため、再起動時にログデータは失われます。データを永続化するには、systemd-journaldがデータを保存する/ var/log/journal /を作成するだけで十分です。
どうやら、デフォルトは Fedora 19で変更されました (永続的なストレージへ)でした。CentOS7はFedora 18から派生しているため、デフォルトではまだ永続的ではありません。永続性は、デフォルトで/var/log/messages
およびrsyslogdによって書き込まれるローテーションバージョン/var/log/messages-YYYYMMDD
(デフォルトで実行され、journaldから入力を取得)を介して、journaldの外部で実装されます。
したがって、RHEL/CentOS 7でjournaldを使用して永続的なロギングを有効にするには、
# mkdir /var/log/journal
次に、権限を修正し、journaldを再起動します。経由して
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
systemctl restart systemd-journald
ログが失われる可能性があります: https://github.com/systemd/systemd/issues/2236 を参照してください
mkdir /var/log/journal
v208
には change があります:
systemd-journaldは、作成するジャーナルファイルのグループを「systemd-journal」グループに調整しなくなりました。代わりに、「systemd-journal」グループが所有するジャーナルディレクトリとそのsetgidビットセットに依存しているため、カーネルファイルシステムレイヤーは、ジャーナルファイルがこのグループ割り当てを継承することを自動的に実施します。
Systemdに含まれるtmpfiles.d(5)スニペットは、すべてのブートで存在する場合、setgidビットとグループがジャーナルディレクトリに適切に設定されていることを確認します。
したがって、systemd-tmpfiles --create --prefix /var/log/journal
の後にmkdir /var/log/journal
のようなものを実行する必要があります
以下も参照してください: