/var/log/messages のログを抑制する

2024-03-11

/var/log/messagesに大量にsystemd経由のログが出力される

CentOS 8以降、/var/log/messages に大量にログが出力されるようになりました。これはSystemdが導入されてSystemdがサービスやプロセスの詳細なログを出力されるようになったのが原因の一つと思います。ログをみても下記のようにsystemd経由のログで埋め尽くされています

Feb  4 00:05:01 www01 systemd[174220]: Listening on PipeWire Multimedia System Sockets.
Feb  4 00:05:01 www01 systemd[174220]: Starting Create User's Volatile Files and Directories...
Feb  4 00:05:01 www01 systemd[174220]: Listening on D-Bus User Message Bus Socket.
Feb  4 00:05:01 www01 systemd[174220]: Reached target Sockets.
Feb  4 00:05:01 www01 systemd[174220]: Finished Create User's Volatile Files and Directories.
Feb  4 00:05:01 www01 systemd[174220]: Reached target Basic System.
Feb  4 00:05:01 www01 systemd[174220]: Reached target Main User Target.
Feb  4 00:05:01 www01 systemd[174220]: Startup finished in 191ms.
Feb  4 00:05:01 www01 systemd[1]: Started User Manager for UID 0.
Feb  4 00:05:02 www01 systemd[1]: session-2990.scope: Deactivated successfully.
Feb  4 00:05:12 www01 systemd[1]: Stopping User Manager for UID 0...
Feb  4 00:05:12 www01 systemd[174220]: Activating special unit Exit the Session...
Feb  4 00:05:12 www01 systemd[174220]: Stopped target Main User Target.
Feb  4 00:05:12 www01 systemd[174220]: Stopped target Basic System.
Feb  4 00:05:12 www01 systemd[174220]: Stopped target Paths.
Feb  4 00:05:12 www01 systemd[174220]: Stopped target Sockets.
Feb  4 00:05:12 www01 systemd[174220]: Stopped target Timers.
Feb  4 00:05:12 www01 systemd[174220]: Stopped Daily Cleanup of User's Temporary Directories.

Systemdのログレベルを「info」から「notice」に変更する

systemdのログレベルは何も設定していない場合は「info」に設定されていると思いますので、「notice」に変更します

1.systemdの現在のログレベルを確認します

$ sudo systemctl -pLogLevel show
LogLevel=info

2.「system.conf」の設定ファイルを変更する

# info の箇所をコメントアウトして、LogLevel=notice を追加
$ sudo vi /etc/systemd/system.conf
[Manager]
LogLevel=notice
#LogLevel=info

3.systemdの設定を変更した後は、Systemdを再起動します

$ sudo systemctl daemon-reload

4.ログレベルを変更します

$ sudo systemctl -pLogLevel show
LogLevel=notice

journald.confのログレベル「notice」に変更する

systemdのログレベルを変更しても、まだmessagesに下記にようなログが出力されます。/etc/systemd/journald.conf の設定ファイルログレベルをnoticeに変更すればログが抑制されますが、私の環境では「/var/log/maillog」の出力が止まりましたので、あまりおすすめしません。

Mar  4 11:12:28 www01 systemd[282693]: Queued start job for default target Main Use
Mar  4 11:12:28 www01 systemd[282693]: Started Mark boot as successful after the us
Mar  4 11:12:28 www01 systemd[282693]: Started Daily Cleanup of User's Temporary Di
Mar  4 11:12:28 www01 systemd[282693]: Reached target Paths.
Mar  4 11:12:28 www01 systemd[282693]: Reached target Timers.
Mar  4 11:12:28 www01 systemd[282693]: Starting D-Bus User Message Bus Socket...
Mar  4 11:12:28 www01 systemd[282693]: Listening on PipeWire PulseAudio.
Mar  4 11:12:28 www01 systemd[282693]: Listening on PipeWire Multimedia System Sock
Mar  4 11:12:28 www01 systemd[282693]: Starting Create User's Volatile Files and Di
Mar  4 11:12:28 www01 systemd[282693]: Listening on D-Bus User Message Bus Socket.
Mar  4 11:12:28 www01 systemd[282693]: Reached target Sockets.
Mar  4 11:12:28 www01 systemd[282693]: Finished Create User's Volatile Files and Di
Mar  4 11:12:28 www01 systemd[282693]: Reached target Basic System.
Mar  4 11:12:28 www01 systemd[282693]: Reached target Main User Target.
Mar  4 11:12:28 www01 systemd[282693]: Startup finished in 92ms.

1./etc/systemd/journald.conf の「notice」に変更します

# MaxLevelStore, MaxLevelSyslogの、notice を追加する
$ sudo vi /etc/systemd/journald.conf
MaxLevelStore=notice
MaxLevelSyslog=notice

2.設定変更したら「systemd-journald」を再起動します

$ sudo systemctl restart systemd-journald

上記で、messagesの抑制されますが、maillogの出力がなくなったので、私はjournaldの方は設定していません。
mailログの出力の問題は、rsyslogの設定変更で対応できそうですが、今回は調べるのは諦めました