質問: ### 前提・実現したいこと firewalldでログを取得したいとおもい、以下のコマンドを実行しました。 firewall-cmd --set-log-denied=all ### 発生している問題・エラーメッセージ denyしたログがコマンドライン上に以下のように永遠に出力されるようになりました。 [root@xxxxxxxxxx]# [6320615.315200] FINAL_REJECT: IN=eth0 OUT= MAC=0 2:0c:9b:78:42:83:78:19:f7:07:3f:c0:08:00 SRC=xxxx.xxxx.xxx.xxx DST=xxx.xxx.xxx.xxx LEN ===以下省略=== 以下のコマンドを入力すると出力はとまります。 firewall-cmd --set-log-denied=off 本事象はなぜ発生するか教えていただけますでしょうか。
回答: `firewall-cmd --set-log-denied=all` で設定したものを、`iptables -nvL` で確認すると、LOG チェインで**レベル 4 (warning)** で出力されています。 kernel が直接出力しているようで、journald や rsyslogd では制御できないようです。 抑制する方法としては、カーネルパラメーターの `kernel.printk` の 1つ目の値を **3 (error)** 以下に変更します。 ``` (現在の値を確認) # sysctl kernel.printk kernel.printk = 4 4 1 7 (3 に設定) # sysctl -w kernel.printk="3 4 1 7" kernel.printk = 3 4 1 7 (あるいは dmesg コマンドでも) # dmesg --console-level 3 ``` OS 起動時に上記設定を有効にするには /etc/sysctl.conf または /etc/sysctl.d/ 以下のファイルに設定します。 (参考) How to stop kernel messages from flooding my console?