manekineko倉金家ホームページ

趣味の部屋/サーバー構築メモ その4

ログの調整

2015年12月20日 2015年12月21日 更新
CentOS7ではなぜかmessagesログやsecureログに無用と思われるような多くのお知らせログが出力され、重要な内容を見落としてしまう可能性が高いように思われます。
そこでこれらの無用なログの出力を抑制し、ログを少しでもわかりやすくしてみます。


このCentOS7のサーバーは今のところふだん使いのパソコンを兼ねてバックアップサーバーとして使用している。
いまいちデスクトップ(GNOME3)が使いにくかったりわけのわからないアプリケーションエラーが起きたりで本サーバーとして使用するには不安だったが、OSのバージョンも7.2になってようやく少し安定してきたようだ。
でもコマンド等使いなれているということもあって本サーバーはまだしばらくこのままCentOS6で行こう。

ときにCentOS7ではまだサーバーとして本稼働していない段階なのにmessagesログ(/var/log/messages)には鬱陶しいくらいのログが書き出される。ほとんどどうでもいいこととか、あるいはわけのわからない内容が多い。これは何とかしたい。(ログはなるべくこまめに見てるんだわ。でもmessagesは多すぎてざっと流し見しかできていない。)

で、messagesログの調整。

systemdのログ
systemdからプロセスやらセッションが起動するたびにお知らせログが書き込まれる。
....
.... systemd: Starting Location Lookup Service...
.... systemd: Started Location Lookup Service.
....
.... systemd: Starting Session 3 of user ....
.... systemd: Started Session 3 of user ....
....
デバッグしているわけではないのだからこんなのいらない。単なるお知らせは抑制。

/etc/systemd/system.conf
....

[Manager]
#LogLevel=info
  ↓(変更)
LogLevel=notice
....
少し静かになった...。

gnome-sessionなどのmessagesログ
最も迷惑なのがgnome-sessionのログ。
単なるお知らせのほかに大半わけのわからないログで、しかもユーザが悪いわけではなくGNOMEのできが悪いくせにあまりに多くのログを吐く。多すぎて例をあげる気にもならない。
ついでに他にも細かいinfoを書き出すプロセスも多いので、この際まとめてmessagesログのログレベルを変えてしまおう。…実をいうとgnome側でログレベルを変える方法がわからないのでした。

/etc/rsyslog.conf
....
#### RULES ####
....
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
  ↓(変更)
*.notice;mail.none;authpriv.none;cron.none /var/log/messages
(*.warning; でもいいかもしれない。)

....

それでもしつこく出て来る目障りなログに関しては、
/etc/rsyslog.d に ignore.conf とでもいう名前のファイルをつくり、以下のように書き込む。
あるいは /etc/rsyslog.conf に直接書いてもいい。

/etc/rsyslog.d/ignore.conf
# ある言葉が入っているログを無視する。
:msg, contains, "ignore keyword 1" stop
:msg, contains, "ignore keyword 2" stop
....
ただしこの場合"ignore keyword"の選び方には注意が必要。本来出力すべきログを止めてしまわないように考慮するのはもちろん、特殊な文字や語句が入っているとエラーになるので、必ず systemctl restart rsyslog.service; systemctl status rsyslog.service; で確認しておく必要があります。

これでだいぶmessagesが読み易くなった。

ログがすっきりしたところで見ていたら、
.... systemd: Configuration file /usr/lib/systemd/system/auditd.service is marked world-inaccessible. This has no effect as configuration data is accessible via APIs without restrictions. Proceeding anyway.
.... systemd: Configuration file /usr/lib/systemd/system/ebtables.service is marked executable. Please remove executable permission bits. Proceeding anyway.
.... systemd: Configuration file /usr/lib/systemd/system/wpa_supplicant.service is marked executable. Please remove executable permission bits. Proceeding anyway.
などという注意ログをすぐに発見。今まで多量のログに埋もれて気がつかなかったらしい。
たぶんインストールパッケージ作成時のミスだな。さっそく直しておいた。無用なログ抑制の効果ありだな。

secureログ (2015.12.21 追記)
そういえば最近7.2にアップデートしたあたりからかと思うが、secureログ(/var/log/secure)にも同様にpolkitdのプロセスを認証したの解除したのといったような多くのログが書き出される。
.... polkitd[949]: Registered Authentication Agent for unix-process:....
.... polkitd[949]: Unregistered Authentication Agent for unix-process:....
sessionはともかく、いちいちprocessどうのこうのはまあ不要といえば不要なのでsecureログのログレベルも上げてみよう。

/etc/rsyslog.conf
....
#### RULES ####
....
# The authpriv file has restricted access.
authpriv.* /var/log/secure
  ↓(変更)
authpriv.notice /var/log/secure
....
こちらもだいぶすっきりした。

しかしこれではいろんなとこから文句が出て、いずれ修正されるとは思うけどね。