新規導入した無線 LAN ルータ(BUFFALO AirStation WZR-G54)で、 MRTG を使ってパケット量のデータを取得する。
- ルータ WWW 機能の『管理』→『通信パケット情報』で表示される パケット流量の数値を、スクリプト /etc/snmp/airstation.sh にて抜き出す。
- この値を snmpd の exec 機能を使って snmp により参照できるように設定する。
- 以下の snmpd.conf を用いると、MIB の .1.3.6.1.4.1.2021.50.101.1 ~ 以降で参照できるようになる。
- この snmp の監視結果を、MRTG によってグラフ化する。
以前のルータでも同様の方法でパケット量のデータ取得はできていたが、 不思議な事に時折、MRTG のグラフ上に巨大なパケット流量が観測されていた。 今回ルータを機種変更したら、この異常な巨大パケットが頻繁に観測された。 調べると、airstation.sh でデータが取れない時がたまにある様子。 一応、MRTG の Options の unknaszero 設定(データ取得に失敗したとき0として扱う) で、逃げる。しかし、これでもダメ。 ルータのWWW設定を使っていると、時々『他に設定しているときはダメ』という メッセージが出ていたので、『ログアウト』処理をすればいいと推測。
≪/etc/snmp/airstation.sh≫ # パケット流量を HTML 形式で読み取り、必要な部分だけ切り抜く。 /usr/bin/w3m -dump_source -no-proxy \ http://root:パスワード@アドレス/advance/ad-admin-packet.htm 2>&1 \ | /bin/sed -n "/bgColor=#a7f3cf/ s/^.*\([0-9]*\)<\/STRONG>.*$/\1/ p" # Logout を強制実行 /usr/bin/w3m -dump_source -no-proxy \ http://root:パスワード@アドレス/advance/apply.cgi?action=Logout \ >/dev/null 2>&1 ≪/etc/snmp/snmpd.conf≫ exec .1.3.6.1.4.1.2021.50 airstation /bin/sh /etc/snmp/airstation.sh ≪/etc/mrtg.cfg≫ # WAN側 流量 Target[localhost_WAN]: .1.3.6.1.4.1.2021.50.101.3&.1.3.6.1.4.1.2021.50.101.1 :public@localhost: Options[localhost_WAN]: bits,unknaszero # LAN側 流量 Target[localhost_LAN]: .1.3.6.1.4.1.2021.50.101.7&.1.3.6.1.4.1.2021.50.101.5 :public@localhost: Options[localhost_LAN]: bits,unknaszero # 無線側 流量 Target[localhost_WV]: .1.3.6.1.4.1.2021.50.101.11&.1.3.6.1.4.1.2021.50.101.9 :public@localhost: Options[localhost_WV]: bits,unknaszero