Linux : journalの永続化方法

journalのlogの保管を永続化する。

jouraldについて:

systemdの部品で、サービス名は systemd-journald.service です。
systemd-journald.service が起動していること でjournald でログ管理が有効になります。

方法:

journald.confを編集しjournaldで使用するログファイルの保存先を変更する

ログファイルの保存先が/run/log/journal ディレクトリ以下にある場合にはシステムが
リブートするタイミングでjournaldの使用するログファイルがクリアされます。

※/run はtmpfsとしてmountされていて、システムのリブートのタイミングでログ等のデータは
ファイルシステムごとパージされてしまいます。

journaldのログの保管先をシステムのリブートで消えてしまわないファイルシステムに
配置することで、journaldのログを永続保管します。

journald.confを編集:

/etc/systemd/journald.confを編集
 #Storage=auto
 Storage=persistent
 
 ※ Storage=persistentに変更することで/var/log/journalのDisk領域へのログ保管となる

journald.confの編集後は、systemd-journald.serviceをrestartしjournald.confの変更内容を反映します。

 
# systemctl restart systemd-journald.service
 
Storagオプションログの場所説明
♯Storage=auto
Storage=auto
/run/log/journal
or
/var/log/journal
/var/log/journal」ディレクトリがなければ、「/run/log/journal」ディレクトリにログを保管
※デフォルト定義
Storage=persistent/var/log/journalディレクトリがなければ自動でディレクトリを作成
※書込みできない場合、「/run/log/journal」に保管
Storage=volatile/run/log/journalディレクトリがなければ自動でディレクトリを作成
Storage=none保管なしjournaldのログは保管しない
但し、syslogへの転送は行います
Storageオプションの説明

Ex:

※ デフォルトの状態でのステータス確認(ログの保存先の明記がない)

$ sudo systemctl status  systemd-journald.service
● systemd-journald.service - Journal Service
     Loaded: loaded (/lib/systemd/system/systemd-journald.service; static; vendor preset: enabled)
     Active: active (running) since Fri 2023-03-10 06:40:10 JST; 2 months 5 days ago
TriggeredBy: ● systemd-journald-audit.socket
             ● systemd-journald.socket
             ● systemd-journald-dev-log.socket
       Docs: man:systemd-journald.service(8)
             man:journald.conf(5)
   Main PID: 3780583 (systemd-journal)
     Status: "Processing requests..."
      Tasks: 1 (limit: 2332)
     Memory: 19.6M
     CGroup: /system.slice/systemd-journald.service
             └─3780583 /lib/systemd/systemd-journald
$
※ デフォルトの状態でのステータス確認(ログの保存先が/var/log/journalと、明記されている)

$ sudo systemctl status  systemd-journald.service
● systemd-journald.service - Journal Service
     Loaded: loaded (/lib/systemd/system/systemd-journald.service; static; vendor preset: enabled)
     Active: active (running) since Mon 2023-05-15 13:16:40 JST; 1min 22s ago
TriggeredBy: ● systemd-journald-audit.socket
             ● systemd-journald.socket
             ● systemd-journald-dev-log.socket
       Docs: man:systemd-journald.service(8)
             man:journald.conf(5)
   Main PID: 1630221 (systemd-journal)
     Status: "Processing requests..."
      Tasks: 1 (limit: 2332)
     Memory: 2.4M
     CGroup: /system.slice/systemd-journald.service
             └─1630221 /lib/systemd/systemd-journald

May 15 13:16:40 www.21064.com systemd-journald[1630221]: Journal started
May 15 13:16:40 www.21064.com systemd-journald[1630221]: System Journal (/var/log/journal/3ea1b11bdfdb0fc586d40a87ea3f6b2e>
May 15 13:16:40 www.21064.com systemd-journald[1630221]: System Journal (/var/log/journal/3ea1b11bdfdb0fc586d40a87ea3f6b2e>
$ 

Ex:

/var/log/journal/3ea1b11bdfdb0fc586d40a87ea3f6b2e
の 3ea1b11bdfdb0fc586d40a87ea3f6b2e の値は /etc/machine-id の値が使用される
  

$ cat /etc/machine-id 
3ea1b11bdfdb0fc586d40a87ea3f6b2e
$ 

備考:

Ubuntu 20.04.2 LTS
AlmaLinux release 8.4