しかし速度が上がったはいいが、どうもおかしい。無線LANが頻繁に切れる。ルーター(WXR-1750DHP)の上から2つ目のランプが消えてしまい無線LAN機器に一切繋がらなくなってしまう。まるで無線機能のみフリーズしたかのようだ。
WXR-1750DHPは背面に電源ボタンがあるが、この「無線フリーズ現象」になると電源ボタンすら効かなくなり、電源ケーブルを引っこ抜いて強制的に電源を入れ直すしかない(入れ直すと数時間はもつが、またフリーズする)。
原因を探るためにログを見てみても、強制再起動したために時刻設定(NTP)がクリアされてしまい正しいログすら残っていない。これでは原因の特定ができない。
こうなればログを外部に取るしかない。幸い、WXR-1750DHPは外部のsyslogサーバーにログを転送する機能があるようなので、RaspberryPi3 に syslogサーバを立ててそこにログを転送してみる。
RaspberryPi3 での設定はこのサイトのとおり進める。
Raspberry Pi/syslog転送 - Berry Pie Lab
まずは設定ファイル /etc/rsyslog を変更する。
変更前のバックアップを取る。
$ sudo cp -p /etc/rsyslog.conf /etc/rsyslog.conf.org
bashの省略機能(ブレース展開)を利用してより短縮したコマンドで済ますならこう。
$ sudo cp -p /etc/rsyslog.conf{,.org}
$ sudo vim /etc/rsyslog.conf
#$ModLoad imuxsock と
#$UDPServerRun 514 の
頭のシャープ(コメントアウト)を消して設定を有効化する。
次にルータから受け取ったログデータを書き込むファイル名を決めて、そのファイルに書き込ませるための設定を投入する。
記事にあるとおり、以下で進める。
書き込み設定の投入:/etc/rsyslog.d/remote-syslog.conf
ログを書き込むファイル名:/var/log/remote-syslog
書き込み設定を投入する。
$ sudo vim /etc/rsyslog.d/remote-syslog.conf
記事のとおり設定を入れる。最後の行の & ~ も忘れず記入する。
設定投入後のサービス再起動。
$ sudo /etc/init.d/rsyslog restart
さらにログをロテート(ある程度たまったら古いのから上書き)する設定が必要。
$ sudo vim /etc/logrotate.d/rsyslog
ロテート対象として、ログを保存するファイル名 /var/log/remote-syslog を書き込んでやればよい。
以上で RaspberryPi3(ログを受け取るサーバ側)の設定は完了。
あとは、ログを吐き出す側(ルータWXR-1750DHP)に保存先サーバをIPアドレスで指定してやるだけ。
ログが取れているか、RaspberrPi3 側で見てみる。
$ sudo vim /var/log/remote-syslog
バッチリ。ちゃんとログが取れていた。
そして、このログ採取によって分かったこと。
IPv6での通信不調のとき
① !!!BIG-hammer!!! というワケのわからないログが出ている。
② 「aleady」という綴り間違いと思われるログも出ている。already の間違いだろう(製品の作成者が日本人であることをうかがわせる)。
③ headroom 192 failed というエラーも大量に出る。
次回記事ではこれらのエラーからIPv6の通信を安定させる方法を探る。
参考)