ルータのログをサーバに取り込む

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(コード番号)
    NTPclientLocal0 (16)
    System rebootLocal0 (16)
    User loginLocal0 (16)
    DHCPDaemon (3)
    IPSECAuthpriv (10)
    IPSEC-setupDaemon (3)
    DNS Daemon (3)
    PPPOEDaemon (3)
    PPTPDaemon (3)
    L2TPDaemon (3)
    DDNSDaemon (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に戻る