ルータのログをサーバに取り込む
Buffaloのルータ・VS-1000のログを取り続けたかったのですが、VS-1000にはある程度してしまうと
消えてしまいます。
そこで、Linuxの方に保存することにしてもう少し長く保管することにしました。
OS:VineLinux6.2 32bit
ルータ:Buffalo VR-S1000
1:シスログを取るための設定をします。
1行目はプロトコルモジュールのロード宣言
2行目は通信ポートの設定
3行目は許可する送信サーバです。IPアドレスやドメインを設定することができます。
#vi /etc/rsyslog.conf
変更前
# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514
変更後
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
$AllowedSender UDP, 127.0.0.1, 192.168.1.0/24, *.localnet.co.jp
※UDPでデータが来ない場合は、TCPも設定します。
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
$AllowedSender TCP, 127.0.0.1, 192.168.1.0/24, *.localnet.co.jp
2:取ったログを保存する設定をします。
VS-1000からLinuxにデータを送る時に、ある程度内容を分けて送信されます。
分ける為に名前をつけます。これを「ファシリティ」と呼ぶようです。(使っていてそう思いました)。
ファシリティは下記のとおりです。詳細はBuffaloのサイトを確認してください。Buffaloサイト
| 項目 | Facility(コード番号) |
| NTPclient | Local0 (16) |
| System reboot | Local0 (16) |
| User login | Local0 (16) |
| DHCP | Daemon (3) |
| IPSEC | Authpriv (10) |
| IPSEC-setup | Daemon (3) |
| DNS | Daemon (3) |
| PPPOE | Daemon (3) |
| PPTP | Daemon (3) |
| L2TP | Daemon (3) |
| DDNS | Daemon (3) |
今回はDHCPの割り振りを見たいのでDaemonを選びます。
もちろん、同じ名前の為、IPSEC-setup等の情報も一緒に来ます。(もう少し分けてほしい気が・・・)
VR-S1000のログなのでフォルダをきって保存します。
#mkdir /var/log/vrs1000
#chmod 700 /var/log/vrs1000
#vi /etc/rsyslog.config
# Broadband Router (VR-S1000) <-追加です
>Daemon.* /var/log/vrs1000/daemon.log
*.* @remoteserver
:fromhost-ip, isequal, "192.168.12.10" /var/log/vrs1000/vrs1000.log
& ~
:fromhost-ip, !isequal, "127.0.0.1" /var/log/messages
& ~
*.info;mail.none;authpriv.none;cron.none -/var/log/messages
情報は、messagesにも行くので行かないように着信拒否設定をします。
変更前
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
変更後
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none;daemon.none /var/log/messages
#*.info;mail.none;authpriv.none /var/log/messages コメントアウトします
<<ファイル保存します>>
3:最後にシスログを再起動します。
# /etc/rc.d/init.d/rsyslog restart
システムロガーを停止中: [ OK ]
システムロガーを起動中: [ OK ]
4:VR-S1000のルータを設定します。
「有効」にチェックを入れて、サーバのIPアドレスを入力し「保存」ボタンを押します。
5:ログローテートを設定します
ログが増えていくとやはり世代管理をしたいものです。
そこで、ログローテートを設定します。
#cd /etc/logrotate.d
#vi daemon
---以下 入力します--
/var/log/vrs1000/daemon.log {
missingok
postrotate
/usr/bin/kill -HUP `cat /var/run/daemon.pid 2> /dev/null` 2> /dev/null || true endscript
}
ネームサーバのログローテートを参考に作りました。ひょっとしたら、
Killの行は不要だったかもしれません。最後のパイプで「true endscript」と書いてあり、
「エラーでも処理を進める」という命令文があるので、とりあえずこのままで行きます。
これで、設定は終わりです。うまくいきますよーに
【データ送信確認(その1)】
信号がサーバまできているかどうかはTCPDUMPを使うとわかります。
#tcpdump -s0 -i eth0 -X port 514
TCPの信号で、514ポートにどんな信号が来ているのか表示します。ここで表示されると
ルータからサーバまで信号がきています。
---------------
2014/11/29 初版
2015/03/15 rsyslog.confの変更
2015/04/15 おまけ1を加筆。
送信サーバの制限。TCPプロトコルについて加筆。
Let's PCのTopに戻る
ホームページのTopに戻る