ブロードバンドルータの Syslog を Linux サーバに飛ばす
最近のブロードバンドルータ、ISDN ルータなどは、Syslog をサーバに転送する機能が標準的についています。ルータの設定画面で Syslog を見ることもできますが、リセットした時にログが消えてしまったり、保存できる量が少なかったりして、いざというときに役に立たないこともありますし、面倒です。
ここでは、ルータの Syslog を Linux サーバに転送する方法をまとめます。Linux サーバは Red Hat Linux 9 を使用して確認しました。
Linux 側の設定
まず、/etc/syslog.conf を設定し、ログを録るファイル名を指定します。
# Router user.* /var/log/router
次に、syslogd が、外部からのログの転送を受け付けるようにします。Red Hat 系では /etc/sysconfig/syslog ファイルを編集します。SYSLOGD_OPTIONS に -r を指定します。
SYSLOGD_OPTIONS="-r -m 0"
iptables でファイアウォールを運用している場合は、UDP ポート 514 を解放する必要があります。iptables の設定方法はいろいろありますが、ここでは /etc/sysconfig/iptables を直接編集します。次のような記述を追加します。
-A RH-Lokkit-0-50-INPUT -p udp -m udp -s 192.168.1.254 --dport 514 -j ACCEPT
-s に指定した IP アドレスはルータの IP アドレスです。設定が終わったら iptables と syslogd を再起動します。
# service iptables restart # service syslog restart
ブロードバンドルータの設定
ルータ側の設定は、ルータにより異なりますので、各製品の説明書に従って設定してください。次の画面は NetGenesis OPT-100 の例です。
YAMAHA の NetVolante の場合の例です。
設定が終わったらテストしてみましょう。例えば切断、接続とか、ルータの再起動などです。うまくログが Linux サーバに転送されることを確認してください。ルータによっては再起動後から Syslog の転送が有効になる場合があります。
ログのローテーション
最後に syslog のローテーションの設定をします。Red Hat Linux の流儀に従って、/etc/logrotate.d/ ディレクトリに router というファイルを作ります。
# vi /etc/logrotate.d/router
/var/log/router { weekly notifempty missingok }
これで、ログは一週間おきにローテーションされます。
1月24日追記
ルータが user.info の syslog を飛ばしている場合には、messages ログファイルにルータのログも記録されてしまいます。これを防ぐためには、/etc/syslog/conf の messages の部分に、user.none; を追加します。
*.info;user.none;mail.none;authpriv.none;cron.none /var/log/messages
この後、syslogd を再起動すれば、messages ログにはルータのログは出てこなくなります。
参考になりました。
購入して1年、 MN8300 の Syslog 機能を初めて使うことができました (^^;
コメント by thanks. — 2005-02-15 23:15