【全オプション解説】journaldログが削除されない設定とおススメ設定を解説

全オプション解説journaldログが削除されない設定とおススメ設定を解説 Linuxサーバ

OSが再起動されるとjournaldのログが消えてしまいます。
デフォルトは「/run/log/journal」ディレクトリというメモリにログが保管されます。
メモリ使用容量にも影響するのでjournaldを適切にファイルに保管してかつ適切な容量で設定する方法を解説します。

以下のように、journaldログがメモリ内に保管されていることが確認できます。

journaldのログがメモリ内に保管されていることを確認


スポンサーリンク

【2ステップ】journaldのログが削除されないよう保管場所を変更する方法

具体的には、ログの保管場所をメモリ(「/run/log/journal」)からファイル(「/var/log/journal」)に変更します。

1.journaldの設定ファイル(/etc/systemd/journald.conf)を修正
vi /etc/systemd/journald.conf

#Storage=aotoのオプション設定を「#」を削除して以下に変更
Storage=persistent

「#Storage=aoto」オプションの設定を変更せずデフォルト設定で「/var/log/」配下に「journal」ディレクトリを新規作成すると「Storage=persistent」と同様の設定になります。

「メモリ保管」か「ディスク保管」なのか明確にするために、あえて設定を変更することをおススメします。


■Storageオプションの設定値については、以下の表を参照

Storageオプションログの保管場所説明
#Storage=auto
Storage=auto
/run/log/journal
or
/var/log/journal
デフォルト設定(※左記2つは同じ設定を意味します)
/var/log/journal」ディレクトリがなければ、「/run/log/journal」ディレクトリにログを保管
Storage=persistent/var/log/journalディレクトリがなければ自動でディレクトリを作成してログを保管
但し、書込みできない場合、「/run/log/journal」に保管
Storage=volatile/run/log/journalディレクトリがなければ自動でディレクトリを作成してログを保管
Storage=none保管しないjournaldのログにデータは保管されません
但し、syslogへの転送は行います
journaldのログ保管場所を設定するStorageオプションの説明


2.journaldサービス(systemd-journald.service)の再起動
systemctl restart systemd-journald.service

「systemd-journald.service」を再起動して「/etc/systemd/journald.conf」の設定変更を反映します。


以下は、「Storage=persistent」に設定を変更後、journalログの保管場所が「/run/log/journal」から「/var/log/journal」に変更されていることが確認できます。

journaldのログが「/run/log/journal」から「/var/log/journal」に変更されたことを確認




journaldのデフォルト設定から変更しておきたいおススメ設定

「Storage=persistent」の設定と合わせて以下の設定を最低限しておくことをおススメします。


■ログファイルの取りこぼしを防止するためにリミットを解除
※詳細は下記のオプション解説を参照
RateLimitIntervalSec=0
RateLimitBurst=0


■ディスクのパンクを防ぐためにログの保管容量を制限
SystemMaxUse=2G
※適宜、容量を設定する

※設定変更後の反映には「systemd-journald.service」の再起動が必要です

Journalオプションを全解説

■「/etc/systemd/journald.conf」のjournalオプションについて全解説

Journalオプションデフォルト設定説明
Storageauto保管場所を指定
Compressyesログを圧縮して保管
Sealyesjournalログの書き換え防止
SplitModeloginjournalログ分割方法
uid、login、none
loginはログインしたユーザのjournalログをもつ
SyncIntervalSec5m(5分)journalログのディスク同期までの時間
RateLimitIntervalSec
RateLimitBurst
30s(30秒)
10000
「RateLimitIntervalSec」の時間内に「RateLimitBurst」以上のログが出力されると、「RateLimitIntervalSec」間隔が終わるまで、それ以降のログがドロップされて破棄されます
SystemMaxUse
SystemKeepFree
SystemMaxFileSize
ファイルシステムの10%/var/log/journalが設定されたときに適用されます

「SystemMaxUse」
->/var/log/journalが利用できる最大のディスク容量

「SystemKeepFree」
->ディスク容量を他の用途のためにどのくらい空けておくのかを設定する容量

「SystemMaxFileSize」
->/var/log/journalないのファイルの最大サイズ
SystemMaxFiles100/var/log/journalの最大ファイル数
RuntimeMaxUse
RuntimeKeepFree
RuntimeMaxFileSize
ファイルシステムの15%/run/log/journalが設定されたときに適用されます。
「RuntimeMaxUse」
->/run/log/journalが利用できる最大のディスク容量

「RuntimeMaxKeepFree」
->ディスク容量を他の用途のためにどのくらい空けておくのかを設定する容量

「RuntimeMaxMaxFileSize」
->/run/log/journalないのファイルの最大サイズ
RuntimeMaxFiles100/run/log/journalの最大ファイル数
MaxRetentionSec0(無効)journalログの保管時間
指定した時間間隔より古いログが含むjournalファイルを削除するかを決める設定
MaxFileSec1month(1ヶ月)journalログファイルに格納し続ける最大の時間
※時間でファイルをローテーションするための設定
ForwardToSyslog
ForwardToKMsg
ForwardToConsole
no(無効)「ForwardToSyslog」はsyslog
「ForwardToKMsg」はkmsg(カーネルログ)
「ForwardToConsole」はシステムコンソール
にログを転送するかを設定
ForwardToWallyes(有効)「ForwardToWall」はログインユーザ
にログを転送するかを設定
TTYPath/dev/consoleForwardToConsole=yesのときに利用するコンソールパス
MaxLevelStoredebugjournalログに保管される最大ログレベル
※デフォルトは「debug」レベル以上のログを保管
MaxLevelSyslogdebugsyslogにログ転送する時のログレベル(ForwardToSyslog=yesで適用される)
MaxLevelKMsgnoticekmsgにログ転送する時のログレベル(ForwardToKMsg=yesで適用される)
MaxLevelConsoleinfoコンソールにログ転送する時のログレベル(ForwardToConsole=yesで適用される)
MaxLevelWallemergログインユーザにログ転送する時のログレベル(ForwardToWall=yesで適用される)
LineMax48K(48キロバイト)最大のラインサイズの容量
/etc/systemd/journald.confの変更できる設定の説明
1."#"でコメントアウトされており設定が有効化されていませんが、記載されている設定がデフォルト設定になります。

2.例えば、容量と期限を設定した場合、上限に先に到達した方の設定が優先されます。

コメント

タイトルとURLをコピーしました