Last Updated on 2022年9月24日 by かんりにん
社内のバッチ用途で、久々にオンプレのサーバにCentOS7を入れてセットアップをしていたら/var/log/messagesにuser.sliceのメッセージが短時間で大量に出ていた。
ここんとこサーバ使うときもEC2どっぷりなうえ、ElasticBeansTalkにAutoScaling運用に慣れてしまって、サーバを1からちゃんと立ててないからか、こういうの知らなかった…(という言い訳。いかーん汗)
Jul 25 16:40:01 [localhost] systemd: Created slice User Slice of root. Jul 25 16:40:01 [localhost] systemd: Starting User Slice of root. Jul 25 16:40:01 [localhost] systemd: Started Session 274 of user root. Jul 25 16:40:01 [localhost] systemd: Starting Session 274 of user root. Jul 25 16:40:02 [localhost] systemd: Removed slice User Slice of root. Jul 25 16:40:02 [localhost] systemd: Stopping User Slice of root. Jul 25 16:50:01 [localhost] systemd: Created slice User Slice of root. Jul 25 16:50:01 [localhost] systemd: Starting User Slice of root. Jul 25 16:50:01 [localhost] systemd: Started Session 275 of user root. Jul 25 16:50:01 [localhost] systemd: Starting Session 275 of user root. Jul 25 16:50:01 [localhost] systemd: Removed slice User Slice of root. Jul 25 16:50:01 [localhost] systemd: Stopping User Slice of root. Jul 25 16:55:01 [localhost] systemd: Created slice User Slice of pcp. Jul 25 16:55:01 [localhost] systemd: Starting User Slice of pcp. Jul 25 16:55:01 [localhost] systemd: Started Session 276 of user pcp. Jul 25 16:55:01 [localhost] systemd: Starting Session 276 of user pcp. Jul 25 16:55:01 [localhost] systemd: Removed slice User Slice of pcp. Jul 25 16:55:01 [localhost] systemd: Stopping User Slice of pcp. Jul 25 16:58:01 [localhost] systemd: Created slice User Slice of pcp. Jul 25 16:58:01 [localhost] systemd: Starting User Slice of pcp.
…以降もズラズラと出力。
と思ったら通常のメッセージとして出力されるものらしい。
参考:お世話になっております。
systemd メッセージ Created slice & Starting Session でログがあふれる
セキュリティを考えたら必要なログ何だろうと思うが、”ユーザーがログインするたびに表示されます”という割には
実際にログインしているわけでもないのに何なのか?出力行数が多すぎる!
とにかくウザい、ということで上記のRedHatのページで紹介されている手順でrsyslogにてフィルターを作成して適用する、という方法を実施。
1.コンフィグファイルの作成
# echo 'if $programname == "systemd" and ($msg contains "Starting Session" or $msg contains "Started Session" or $msg contains "Created slice" or $msg contains "Starting user-" or $msg contains "Starting User Slice of" or $msg contains "Removed session" or $msg contains "Removed slice User Slice of" or $msg contains "Stopping User Slice of") then stop' >/etc/rsyslog.d/ignore-systemd-session-slice.conf
2.作成したファイルの確認
# cat /etc/rsyslog.d/ignore-systemd-session-slice.conf if $programname == "systemd" and ($msg contains "Starting Session" or $msg contains "Started Session" or $msg contains "Created slice" or $msg contains "Starting user-" or $msg contains "Starting User Slice of" or $msg contains "Removed session" or $msg contains "Removed slice User Slice of" or $msg contains "Stopping User Slice of") then stop
3.rsyslogdを再起動
# systemctl restart rsyslog.service
4.再起動後にステータス確認
# systemctl status crond.service ● crond.service - Command Scheduler Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled) Active: active (running) since 火 2018-07-24 16:16:02 JST; 1 day 1h ago Main PID: 1135 (crond) CGroup: /system.slice/crond.service └─1135 /usr/sbin/crond -n 7月 24 16:16:02 intra-001 systemd[1]: Started Command Scheduler. 7月 24 16:16:02 intra-001 systemd[1]: Starting Command Scheduler... 7月 24 16:16:02 intra-001 crond[1135]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 23% if used.) 7月 24 16:16:03 intra-001 crond[1135]: (CRON) INFO (running with inotify support) 7月 25 17:41:01 intra-001 crond[1135]: (*system*) RELOAD (/etc/crontab) 7月 25 17:42:01 intra-001 crond[1135]: (*system*) RELOAD (/etc/crontab)
5.追加分書式
上記の手順および設定によりログ出力の抑制を確認したが、一部“system-logind”のログが残っていた。
↓こんなやつ
Jul 25 17:50:09 [localhost] systemd-logind: New session 289 of user admin. Jul 25 17:50:44 [localhost] systemd-logind: New session 290 of user admin. Jul 25 17:50:58 [localhost] systemd-logind: Removed session 290. Jul 25 17:51:04 [localhost] systemd-logind: Removed session 289. Jul 25 18:11:13 [localhost] systemd-logind: New session 296 of user admin. …以下ダラダラ続くw
これはsystemdとは別口になるのと、user.sliceと比べてウザくない(謎)ので残しておいてもいいかな?と思ったが、もともと/var/log/secureでアクセスと認証の履歴は残っているし、やっぱり要らないか、ということでこちらも出力を停止することに。
system-logindのすべてのログを抑制する必要は無いので、systemdと同じく”or $msg contains~” 書式で手作業で設定を追加。
if $programname == "systemd-logind" and ($msg contains "New session" or $msg contains "Removed session") then stop
上記を/etc/rsyslog.d/ignore-systemd-session-slice.confへ追加し、再度rsyslogdをrestartし、抑制OK。
(てか、明示的にフィルターを作成しないと抑制できないってめんどい…)
これ、sysstat の cron タスクからの出力ですね>10分毎
出力の消し方、参考になりました。ありがとうございました
コメントありがとうございます!