解決済:YAMAHA RTXのsyslogが、うまくフォルダ分けできない

見出し



■rsyslogで動的にフォルダ分け中
現在稼働しているrsyslog サーバでは、クライアントのホスト名やIPアドレスを基準にして、ログをフォルダ分けしています。
恐らく、よくある設定方法だと思います。
[rsyslog.conf]
$template logFileName, "/var/log/syslog/%hostname%/%$year%%$month%%$day%.log"
*.*    -?logFileName

これによって、各「hostname」フォルダ内に、日付ごとのログファイルが出力されます。
hostname」は、機器によってホスト名やIPアドレスになります。


■YAMAHA RTXのログはフォルダ分けがおかしい
RTX830 や RTX1210 では、「hostname」 にはIPアドレスが使用されるため、大半のログはrsyslogサーバのIPアドレスのフォルダ名に出力されます。
ところが、RTX の一部のログは、「Login」「Logout」「Configuration」などの妙なフォルダ内に出力されてしまいます。
しかも、複数の機器を区別せずに、全てそれらのフォルダ内のログファイルに出力されてしまいます。


■解決策
rsyslog.confにて、フォルダ名を指定する箇所の「%hostname%」「%fromhost%」または「%fromhost-ip%」に変更します。
[rsyslog.conf]
$template logFileName, "/var/log/syslog/%fromhost%/%$year%%$month%%$day%.log"
*.*    -?logFileName


■解説
この問題の原因は、RTXのsyslogメッセージの仕様によります。
実際のRTX(192.168.0.1)のsyslogメッセージを参照してみましょう。
Jan 30 12:11:51 192.168.0.1 [DHCPD] VLAN1 Allocates 192.168.2.11: xx:xx:xx:xx:xx:xx
Jan 30 12:38:13 Login succeeded for SSH: 192.168.50.5 adminuser
Jan 30 12:39:40 192.168.0.1 'administrator' succeeded for SSH: 192.168.50.5 adminuser
Jan 30 12:45:05 192.168.0.1 [ETHERNET_FILTER] Rebuilds the DHCP bind information.
Jan 30 12:47:33 Configuration saved in "CONFIG0" by SSH(adminuser)
Jan 30 12:49:43 Logout from SSH: 192.168.50.5 adminuser
Jan 30 12:51:37 192.168.0.1 [DHCPD] VLAN1 Extends 192.168.2.12: yy:yy:yy:yy:yy:yy

上の通り、大半のログは行頭にIPアドレスが出力されます。
しかし一部のログでは、なぜか行頭にIPアドレスが出力されません。

どうやら rsyslog.confにおける「hostname」は、syslogメッセージ内の行頭の文字列を参照して決定されるようです。
RTXのsyslogメッセージは、ログの種別によって行頭が様々に変わってしまい、機器を判断できない情報になることがあります。

しかし「fromhost」「fromhost-ip」の場合は、syslogが送信されたIPアドレスを基準に文字列を決定します。
そのため、結果の文字列はメッセージの内容に左右されません。


要するに、RTXのsyslogフォーマットがイマイチということです……。トホホ

ちなみに、RTXの show log と syslog の出力結果には差があったので、一部のログはそもそもsyslog転送に乗らないようです。
(Illegal ARP のエラーが、syslogに出力されていなかった)
これまたトホホ……。