2014年10月13日月曜日

OpenWrtでbandwidthモニタリング

Bandwidthの記録を取りたいことありますよね。
しかもその結果がグラフ表示できたら最高です。

標準GUIでStatus→Realtime Graphs→Trafficで3分間のグラフは見えますが、これはその瞬間瞬間のデータを、このグラフを表示している間だけ出している物で、後から確認しようと思っても、記録が残っていません。

そこで、bmonをぶち込むといいとあったのでやってみました。そうしたら、こんな感じで使えます。バーグラフはちょっと冴えない感じですが、最大60日分記録できて、なかなか便利そうです。これをしばらく使ってみましょう。


インストール手順。まずはSystem→Softwareから、bmonを検索してインストールします。ここでインストールされるのは2.1です。最新版は3.5らしいのですが、そちらはhtmlにグラフ出力する機能がなくなってるので、2.1でいいです。


起動は、コマンドラインから。まず書き込み先を設定して、その後起動です。
# mkdir /tmp/bmon
# ln -s /tmp/bmon /www
# bmon -o null -O html:path=/www/bmon 2>&1 >/dev/null &
http://openwrt/bmonにアクセスすると記録が出てきます。最初はデータが無いので全て空で、動かしておけば秒単位、分単位、時間単位、日単位と埋まっていきます。

記録は最大60日です。年単位で記録できて、更にリブートしても情報が残ったりすると嬉しかったんですが、そういう用途ではないようです。

実行してロードアベレージを見るとデフォルトの設定では18%も食ってます。重すぎですので、設定を変更します。/etc/bmon.confに以下を書き込みます。
output null
secondary_output html:path=/www/bmon;interval=3;height=10
policy br-lan,pppoe-wan
htmlの出力の更新を3秒毎に変更して、かつ更新する情報をbr-lanとpppoe-wanだけに絞っています。これでロードアベレージが1%〜3%程度に収まり実用的になりました。ついでにグラフも縦軸をデフォルトの6から10に。

policyで指定しているデバイス名は、利用しているルーターによって変わります。必要に応じて調整下さい。デバイス名は、ifconfigを見るか、一度bmonを動かしてから決めるといいですね。

自分で使っているbmon.confでは、htmlのrefreshも追加して、10秒毎に自動リフレッシュさせてます。head以外の場所に打ち込んでるので、動くか動かないかはブラウザ依存かな。chromeでは動いてます。
secondary_output html:path=/www/bmon;interval=3;height=10;title=Traffic Rate Estimation and Monitoring <meta http-equiv="refresh" content="10">

最後は、起動時に自動で立ち上がるように、/etc/rc.localに書き込みます。
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

mkdir /tmp/bmon
ln -s /tmp/bmon /www
bmon 2>&1 >/dev/null &
exit 0

0 件のコメント:

コメントを投稿