Rsyslogでルーターのログを記録
ネットにつながらない
先日深夜、ネットに繋がらなくなるトラブルが発生した。モデムも生きているしLANも生きてるがルーターとモデム間で何かしらトラブルが起きているようだ。
ルーターの再起動やモデムの初期化などを行って復旧は出来たのだが、結局原因は分からなかった。
ルーターのログって再起動で消えるのか
自宅で使っているルーターはBuffalo WXR-2533DHP2というありふれたもの。ログは記録されるのだが再起動で消えてしまうので、別の場所にログを保管しておきたいと思った。
Ubuntu ServerのRsyslogを使う
[参考サイト]
まずroot権限で`# vi /etc/rsyslog.conf`をして下記のように設定
```
1 # /etc/rsyslog.conf Configuration file for rsyslog.
2 #
3 # For more information see
4 # /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
5 #
6 # Default logging rules can be found in /etc/rsyslog.d/50-default.conf
7
8
9 #################
10 #### MODULES ####
11 #################
12
13 module(load="imuxsock") # provides support for local system logging
14 module(load="imklog") # provides kernel logging support
15 #module(load="immark") # provides --MARK-- message capability
16
17 # provides UDP syslog reception
18 module(load="imudp")
19 input(type="imudp" port="514")
20 $AllowedSender UDP, 127.0.0.1, 192.168.0.0/16
21
22 # provides TCP syslog reception
23 module(load="imtcp")
24 input(type="imtcp" port="514")
25 $AllowedSender TCP, 127.0.0.1, 192.168.0.0/16
26
27 # Enable non-kernel facility klog messages
28 $KLogPermitNonKernelFacility on
29
30 ###########################
31 #### GLOBAL DIRECTIVES ####
32 ###########################
33
34 #
35 # Use traditional timestamp format.
36 # To enable high precision timestamps, comment out the following line.
37 #
38 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
39
40 # Filter duplicated messages
41 $RepeatedMsgReduction on
42
43 #
44 # Set the default permissions for all log files.
```
設定したら`# systemctl restart rsyslog `
この場合、サーバーのUDP514ポートを開けておくのを忘れずに
ルーターの設定
管理 > ログ > syslog設定のログ情報転送機能を有効にして、syslogサーバーに上記のUbuntuServerのIPを指定すればOK
これで一応ログは記録される
ログファイルの分離
ルーターのログのみのファイルを作成したいので`/etc/rsyslog.d/`に分離するファイル(ここでは70-router.confとする)を作る
```
# vi 70-router.conf
:fromhost-ip, isequal, "192.168.11.1" -/var/log/router.log
```
を追加
ログの確認は`cat /var/log/router.log`で出来る