ルータのsyslogをログサーバに転送する
ルータなどのネットワーク機器は大量のログを保管できないが,その代わり大抵のルータはsyslogサーバにログを転送することができる
今回ログサーバに採用したのはDebian lenny
インストール直後はほとんど何も入ってなくて軽いのが決め手
他にもUnix系のOSなら大抵syslogサーバを使っている
Windowsにはsyslogサーバは入ってないけど,ちょっとしたテストなんかにはGST Syslog Serverが便利
lennyはsyslogではなくrsyslogを採用している
直接 /etc/rsyslog.conf を編集してもいいけど,お作法に従って /etc/rsyslog.d 以下にファイルを置いて読み込ませる
ファシリティはlocal0とします
設定ファイルの名前は *.conf であれば何でもOK
今回はYAMAHA RTX1200のログなので /etc/rsyslog.d/rtx1200.conf にしました
ログファイルの名前もお好きに
$ModLoad imudp $UDPServerRun 514 local0.* /var/log/rtx1200.log
ファイアウォールがある場合は UDP 514番ポートを開けておきましょう
rsyslogを再起動します
$ sudo /etc/init.d/rsyslog restart
ついでにローテーションの設定もしておきます
/etc/logrotate.d/rsyslog に 先ほど指定したログファイルを追加するだけでOK
logrotateはデーモンではないので,cronからlogrotateが実行される際に変更したファイルも読み込まれます
大量にログが転送されてくるとか,シビアなコンディションの場合はlogrotateを使わずにrsyslogのログローテーション機能を使った方が確実でしょう
あとは,ルータの設定です
ログレベルはnoticeとします
YAMAHAならこんな感じ
# syslog host 鯖のアドレス # syslog facility 16 # syslog notice on
Ciscoならこんな感じかな
# logging 鯖のアドレス # logging facility local0 # logging trap 5
当たり前ですが,ntpとかでルータと鯖の時間併せておきましょう
