tl; dr
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ページには、説明auto
のように:
「volatile」、「persistent」、「auto」、および「none」のいずれか。「揮発性」の場合、ジャーナルログデータはメモリにのみ、つまり/ run / log / journal階層の下に保存されます(必要に応じて作成されます)。「永続的」の場合、データはできればディスク上、つまり/ var / log / journal階層の下(必要に応じて作成)に保存され、/ run / log / journal(必要に応じて作成)にフォールバックします。早期起動およびディスクが書き込み可能でない場合。「auto」は「persistent」に似ていますが、ディレクトリ/ var / log / journalは必要に応じて作成されないため、その存在によってログデータの行き先が制御されます。
(鉱山を強調する)
したがって、systemd-journald.serviceのマニュアルページには次のように記載されています。
デフォルトでは、ジャーナルはログデータを/ run / log / journal /に保存します。/ run /は揮発性であるため、ログデータは再起動時に失われます。データを永続化するには、systemd-journaldがデータを保存する/ var / log / journal /を作成するだけで十分です。
どうやら、デフォルトはFedora 19で(永続的なストレージに)変更され、CentOS 7はFedora 18から派生しているため、デフォルトではまだ永続的ではありません。永続性は、デフォルトでjournald via /var/log/messages
および/var/log/messages-YYYYMMDD
rsyslogd(デフォルトで実行され、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
を行う必要があります。したがって、再起動は必要ありません。