YAMAHA RTX Syslog Format

YAMAHA RTX 1100がはき出すSyslogデータをパースしたいと思ったので、とりあえずUDPでデータを受け付けて、出力データを見たところ、以下のデータを確認。

受信データ:<13> [INSPECT] LAN2[out][200102] TCP xx.xx.xx.xx:40980 > xx.xx.xx.xx:80 (2012/06/19 10:10:44)

上記のデータでは、timestamp hostnameが無い。

RFC3164 の仕様に基づくと、他のリレーまたはコレクターに転送するのであれば、以下のようにtimestamp と送信もとのIPアドレスもしくはhostname を追記(書き換え)しなければならない。

書き換え後のデータ:<13>Feb 1 10:12:00 hostname [INSPECT] LAN2[out][200102] TCP xx.xx.xx.xx:40980 > xx.xx.xx.xx:80 (2012/06/19 10:10:44)

MESSAGE は TAG と CONTENTに分かれる
TAG = 英数字で32文字まで、英数字以外の文字はTAG欄の末尾となる。その後はCONTENTとなる。

従って

Facility = 1(User)
Severity = 5(Notice)
Timestamp = Feb 1 10:12:00
Hostname = hostname
Tag = null
Content = [INSPECT] LAN2[out][200102] TCP xx.xx.xx.xx:40980 > xx.xx.xx.xx:80 (2012/06/19 10:10:44)

と解釈できるが。

仕様上tag はRECOMMENDEDとなっているので tagがnull となっていまうので少々残念である。