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への転送は行います |
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