CentOS7でcronによるプログラム実行を有効にすると、5分毎に下記の様な出力がある。
journalctlのログには下記の様な感じで
# journalctl |grep " 2月 28 08:30:01" 2月 28 08:30:01 blog.osakana.net systemd[1]: Started Session 745 of user username. 2月 28 08:30:01 blog.osakana.net systemd[1]: Starting Session 745 of user username. 2月 28 08:30:01 blog.osakana.net systemd[1]: Started Session 744 of user username. 2月 28 08:30:01 blog.osakana.net systemd[1]: Starting Session 744 of user username. 2月 28 08:30:01 blog.osakana.net systemd[1]: Created slice user-499.slice. 2月 28 08:30:01 blog.osakana.net systemd[1]: Starting user-499.slice. 2月 28 08:30:01 blog.osakana.net systemd[1]: Started Session 743 of user munin. 2月 28 08:30:01 blog.osakana.net systemd[1]: Starting Session 743 of user munin. 2月 28 08:30:01 blog.osakana.net systemd[1]: Created slice user-0.slice. 2月 28 08:30:01 blog.osakana.net systemd[1]: Starting user-0.slice. 2月 28 08:30:01 blog.osakana.net systemd[1]: Started Session 746 of user root. 2月 28 08:30:01 blog.osakana.net systemd[1]: Starting Session 746 of user root. 2月 28 08:30:01 blog.osakana.net CROND[713]: (username) CMD (/~/script/toppage.pl >> /~/tw5-topcheck.txt 2>&1) 2月 28 08:30:01 blog.osakana.net CROND[723]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) 2月 28 08:30:01 blog.osakana.net CROND[724]: (root) CMD (/usr/lib64/sa/sa1 1 1) 2月 28 08:30:01 blog.osakana.net systemd[1]: Removed slice user-0.slice. 2月 28 08:30:01 blog.osakana.net systemd[1]: Stopping user-0.slice. #
/var/log/messagesの方には下記の様な感じで・・・
# grep "Feb 28 08:30:01" /var/log/messages Feb 28 08:30:01 blog.osakana.net systemd: Started Session 745 of user username. Feb 28 08:30:01 blog.osakana.net systemd: Starting Session 745 of user username. Feb 28 08:30:01 blog.osakana.net systemd: Started Session 744 of user username. Feb 28 08:30:01 blog.osakana.net systemd: Starting Session 744 of user username. Feb 28 08:30:01 blog.osakana.net systemd: Created slice user-499.slice. Feb 28 08:30:01 blog.osakana.net systemd: Starting user-499.slice. Feb 28 08:30:01 blog.osakana.net systemd: Started Session 743 of user munin. Feb 28 08:30:01 blog.osakana.net systemd: Starting Session 743 of user munin. Feb 28 08:30:01 blog.osakana.net systemd: Created slice user-0.slice. Feb 28 08:30:01 blog.osakana.net systemd: Starting user-0.slice. Feb 28 08:30:01 blog.osakana.net systemd: Started Session 746 of user root. Feb 28 08:30:01 blog.osakana.net systemd: Starting Session 746 of user root. Feb 28 08:30:01 blog.osakana.net systemd: Removed slice user-0.slice. Feb 28 08:30:01 blog.osakana.net systemd: Stopping user-0.slice. #
これを消すための方法をググると、 「/etc/systemd/system.confにLogLevel=noticeを書けばok」なんてのが出てきます。
しかし、これはsystemd全体のログを出力させなくするものであって、今回のログ以外にも出てこなくなってしまうものが発生します。
もっと影響範囲が狭い対処方法がないか探したところRedHatサイトで下記を発見
「Logs flooded with systemd messages: Created slice & Starting Session」
これは、systemdによるログはrsyslogにより/var/log/messagesに記録されているが、systemdからの特定文字列が含まれるログ出力を無視する設定をrsyslogの設定ファイルに記載する、というやり方です。(journalctlの次の段階の出力を調整する手法のため、journalctlの出力結果は変わらない)
下記のコマンドで/etc/rsyslog.d/ignore-systemd-session-slice.confファイルを作成します。
echo 'if $programname == "systemd" and ($msg contains "Starting Session" or $msg contains "Started Session" or $msg contains "Created slice" or $msg contains "Starting user-") then stop' >/etc/rsyslog.d/ignore-systemd-session-slice.conf
その後、「systemctl restart rsyslog」でrsyslogを再起動します。
# ls -l /etc/rsyslog.d 合計 4 -rw-r--r--. 1 root root 49 11月 22 10:27 listen.conf # cat /etc/rsyslog.d/listen.conf $SystemLogSocketName /run/systemd/journal/syslog # echo 'if $programname == "systemd" and ($msg contains "Starting Session" or $msg contains "Started Session" or $msg contains "Created slice" or $msg contains "Starting user-") then stop' >/etc/rsyslog.d/ignore-systemd-session-slice.conf # ls -l /etc/rsyslog.d 合計 8 -rw-r--r--. 1 root root 180 2月 28 09:14 ignore-systemd-session-slice.conf -rw-r--r--. 1 root root 49 11月 22 10:27 listen.conf # 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-") then stop # systemctl restart rsyslog #
上記の対処後の状況を見てみる
# tail /var/log/messages Feb 28 09:20:01 blog systemd: Removed slice user-0.slice. Feb 28 09:20:01 blog.osakana.net systemd: Stopping user-0.slice. Feb 28 09:20:22 blog.osakana.net systemd: Removed slice user-499.slice. Feb 28 09:20:22 blog.osakana.net systemd: Stopping user-499.slice. #
/var/log/messages は・・・「Removed slice」と「Stopping user-」が条件になかったので、記録されていました。
下記の様に編集して、対処しました。
# 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 "Removed slice" or $msg contains "Stopping user-") then stop $
journalctlの方は引き続き出力ありです。
# journalctl |tail 2月 28 09:30:01 blog.osakana.net systemd[1]: Started Session 783 of user username. 2月 28 09:30:01 blog.osakana.net systemd[1]: Starting Session 783 of user username. 2月 28 09:30:01 blog.osakana.net CROND[6940]: (root) CMD (/usr/lib64/sa/sa1 1 1) 2月 28 09:30:01 blog.osakana.net CROND[6942]: (munin) CMD (test -x /usr/bin/munin-cron && /usr/bin/munin-cron) 2月 28 09:30:01 blog.osakana.net CROND[6943]: (username) CMD (/~/script/toppage.pl >> /~/tw5-topcheck.txt 2>&1) 2月 28 09:30:01 blog.osakana.net systemd[1]: Removed slice user-0.slice. 2月 28 09:30:01 blog.osakana.net systemd[1]: Stopping user-0.slice. 2月 28 09:30:25 blog.osakana.net systemd[1]: Removed slice user-499.slice. 2月 28 09:30:25 blog.osakana.net systemd[1]: Stopping user-499.slice. #