[linux]rsyslog(messagesなど)にログレベル(severity,重大度)を表示する

rsyslogで出力するシステムログにログレベル(シビリティ・重大度)を表示させる方法。

syslogでは起動オプションを付ける方法であったが、rsyslogでは設定ファイルに定義する。

設定ファイル(/etc/rsyslog.conf)には、ログレベルを追加したログフォーマットを「$template」で始まる行で定義し、出力する定義のアクションにログフォーマットを指定する。

# vi /etc/rsyslog.conf
:(省略)
$template LocalFormat,”%timereported% %hostname% %syslogfacility-text%.%syslogseverity-text%: %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n”
:(省略)
*.info;mail.none;authpriv.none;cron.none /var/log/messages;LocalFormat

出力されるログはこんな感じ

Oct 20 03:21:26 hogehoge kern.warning: kernel: [iptables SYN FLOOD] IN=eth0 OUT= MAC=02:16:3e:4f:39:

「%syslogtag%」やら「%syslogfacility-text%」の意味は

# man rsyslog.conf

の「Available Properties」の項に書いてあるので、そっちを見て。

[linux]syslog(messagesなど)にログレベルを表示する

システムログ(syslogで出力するログ)に、ログレベルを出力させる方法。
ログレベル(重大度)でログ監視させたい場合に非常に便利。

rsyslog版はこちら

syslogdの起動オプションに「-SS」を追加する。
RHEL(CentOS)ならこんな感じ。

# vi /etc/sysconfig/syslog
:(省略)
SYSLOGD_OPTIONS=”-m 0 -SS
:(省略)

オプションを追加したらsyslogdを再起動

# service syslog restart

/var/log/messagesにはこんな感じで出力される

Aug 5 01:19:39 <syslog.info> hostname syslogd 1.4.1: restart.
Aug 5 01:19:39 <kern.info> hostname kernel: klogd 1.4.1, log source = /proc/kmsg started.