[rsyslog] 特定のログを別のログファイルに記録する

rsyslogでログを取っていると、同じファシリティのログでも監視対象として重要なものとそうでないものが混在している場合がある。 そこで、監視対象をデフォルト設定のログファイルに記録し、そうでないものは別のファイルに記録する設定をする。

rsyslogではif~then~形式でログを指定して別のログファイルに記録することができる。

# ログメッセージにhogehogeが含まれていた場合/var/log/hogehoge.logに記録する
if $msg contains 'hogehoge' then /var/log/hogehoge.log

上の$msgの部分には、他に以下のようなものを指定することができる。

  • $hostname: ホスト名
  • $syslogfacility: ファシリティ(数字)
  • $syslogfacility-text: ファシリティ(テキスト)
  • $now: 現在時刻