環境
Ubuntu20.4
はじめに
/etc/rsyslog.confの中に下記の設定があります。この設定で、外部にあるコンフィグファイルを取り込むことができます。
$IncludeConfig /etc/rsyslog.d/*.conf
読み込み先のディレクトリには、デフォルトで2つのコンフィグファイルが存在します。つまり、この2つのファイルを取り込んでいることになります。
$ls /etc/rsyslog.d
20-ufw.conf 50-default.conf
20-ufw.confと50-default.confの内容を、/etc/rsyslog.confに直接記述してもいいが、外部ファイルにして取り込むことで、元のファイルを汚さずに済むといったメリットがあります。
20-ufw.conf 50-default.confの2つのコンフィグファイルの中身を見てみます。
20-ufw.conf
20-ufw.confの中身を参照します。
$ cat /etc/rsyslog.d/20-ufw.conf
# Log kernel generated UFW log messages to file
:msg,contains,"[UFW " /var/log/ufw.log
# Uncomment the following to stop logging anything that matches the last rule.
# Doing this will stop logging kernel generated UFW log messages to the file
# normally containing kern.* messages (eg, /var/log/kern.log)
#& stop
:[プロパティ], [条件文], "値" という形式でルールの設定を行っています。下記の1行を解釈すると、「メッセージ本体の中に"[UFW"の文字が含まれていれば、そのログは、/var/log/ufw.log に出力する」といった意味になります。
:msg,contains,"[UFW " /var/log/ufw.log
stopを入れると、stopの上部で振り分けられたログは、stop以降では、一切出力されないようになります。
& stop
コメントには「stopのコメントを外すと、UFWに関するログは、kern.logには書き込まれなくなります」といったことが書かれています。
コメント文からの推測ではありますが、外部のコンフィグファイルは、20-ufw.conf、50-default.confの順番で読み込まれ、20-ufw.confで設定した内容は、50-default.confにおいても有効になるものと思われます。
50-default.conf
50-default.confの中身を参照します。
$ cat /etc/rsyslog.d/50-default.conf
# Default rules for rsyslog.
#
# For more information see rsyslog.conf(5) and /etc/rsyslog.conf
#
# First some standard log files. Log by facility.
#
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
kern.* -/var/log/kern.log
mail.* -/var/log/mail.log
#
# Logging for the mail system. Split it up so that
# it is easy to write scripts to parse these files.
#
mail.err /var/log/mail.err
#
# Emergencies are sent to everybody logged in.
#
*.emerg :omusrmsg:*
ルールの設定は、[ファシリティ].[シビリティ] という形式も取ります。auth、authprivは認証関連のメッセージです。下記の1行を解釈すると、「認証関連のメッセージは、全てのシビリティに対し、/var/log/auth.log に書き込む」といった意味になります。
auth,authpriv.* /var/log/auth.log
下記は「全てのメッセージの全てのシビリティを、/var/log/syslog に書き込むが、認証関連のメッセージにおいては、全てのシビリティで書き込みを行わない」といった意味になります。
*.*;auth,authpriv.none -/var/log/syslog
下記は「カーネルに関するメッセージは、全てのシビリティを、/var/log/kern.logに書き込む」といった意味になります。
kern.* -/var/log/kern.log
下記は「メールに関するメッセージは、errのシビリティだけを、/var/log/mail.errに書き込む」といった意味になります。
mail.err /var/log/mail.err
下記は「全てのメッセージにおいて、シビリティがemergのログは、コンソール画面に表示する」といった意味になります。
*.emerg :omusrmsg:*