hi-ho ADSL で使っているモデム Aterm WD701CV のリンクアップ速度を Zabbix で表示する。
自宅の ADSL 回線として,昨年から hi-ho(ハイホー) を使っている (nlog(n): 自宅 ADSL のプロバイダ乗り換え手続き (Nexyz.BB → hi-ho))。ADSL 12M 用に送られてきたモデムは NEC Aterm WD701CV であった (nlog(n): hi-ho ADSL のモデムは Aterm WD701CV)。
今回は,この ADSL モデムのリンクアップ速度を Zabbix グラフで表示する。
NEC Aterm WD701CV, Vine Linux 6.3, w3m 0.5.3, Zabbix 2.4.8 である。Aterm は telnet でもアクセスが可能なので,expect を使うことも検討したが,応答から数値を抽出するのは簡単ではないので却下した。Telnet でのアクセスについて解析してくれている方がいる (telnet in WBR75H - Tatsuyoshi tech diary)。
実装は,w3m でモデムの情報ページを表示し,数値を抽出してログ出力,Zabbix でこのログの最新行を読み取ることにする。
Aterm のリンクアップ速度については,以前 Aterm WD734GV を対象として MRTG でグラフ化したことがある (nlog(n): Aterm WD734GV のリンクアップ速度を MRTG で表示する)。基本的には同じだが,出力された文字列をよく見ると,数値の後ろに全角の空白文字が入っていることに気がついた。今回は正確を期すため,これを tr コマンドで取り除くことにする。
PASSWD には自分で決めたパスワードを使い,次のコマンドで出力されるかを確認する。
tr の -cd オプションは,「後ろに続く文字列以外を取り除く」であるから,残す文字列だけを記述する。Aterm からの応答は,文字コード Shift_JIS で帰ってくるが,この指定をしておけば文字コードが何であってもいいし,Linux 側の文字コードも気にする必要がないという利点がある。'[:digit:] \n' を指定することで,数字,半角スペース,改行「以外」の文字を取り除いている。
確認できたら,ログ出力用に例えば次のようなシェルスクリプトを書く。ファイル名は aterm.sh としておき,ディレクトリ /path/to/aterm に保存しておく。プロセス番号と時刻表示は Zabbix 風にしたが,これでなくてもよい (nlog(n): Freetel の通信量を Zabbix 2.4 でグラフ化)。
ログを1行にするために,echo や date の出力の最後の改行を tr で除去している。このスクリプトも動作確認をする。
スクリプトに実行許可を与えるかどうかはお好みで。5分毎に自動実行させるために crontab に登録する。
シェルスクリプトの出力を aterm.log に追記している。
Zabbix agentd の設定は,/usr/local/etc/zabbix_agentd.conf に次を追加する。
UnsafeUserParameters は,すでに設定済みであれば不要である。
上では w3m を使ったが,wget を使って取得する方法もある。ただし,上り下りの速度を同時に取得できないので,2回モデムにアクセスする必要がある。wget でアクセスしたときの応答は次のようになる。
この場合のシェルスクリプト aterm.sh は次のようになる。
やり方は Aterm のグローバル IP アドレスを取得する方法 (sedを使ったテキスト書き換え処理を覚えよう (番外編) - ttt) と同じである。
Zabbix Server では,Web インターフェイスで Create item し,下り速度用にアイテムを登録する。
取得した数値は kdps なので,単位を bps にして値を 1000 倍にしておく。こうしておけば,数値が 1000 を超えていても Kkbps のように変態にはならずに Mbps と表示される。
上り速度用のアイテムも同様に登録して完了である。
Aterm WD701CV から回線速度を取得し,Zabbix でグラフ化した。
現在12Mbps の回線だが,安定化のために帯域調整したので約 6 Mbps となっている (nlog(n): hi-ho の ADSL 回線を帯域調整)。それがよく分かるようになってしまった。もう少し早いと嬉しいが,今のところ問題ない。
Posted by n at 2016-10-12 22:30 | Edit | Comments (0) | Trackback(0)
Master Archive Index
Total Entry Count: 1957