転送量が爆発する可能性があるが、プロバイダの規制が厳しいので転送量を監視するためMRTGをインストールした。
# yum install mrtg
CentOS 5に用意してるMRTGパッケージはcronの追加とかも自動でしてくれるみたいだ。便利じゃのう。
続いて、転送量を見張る設定をMRTGに追加。
ルータはYAMAHAのRT57iを使っている。
問題はRT57iはエントランスモデルなので、SNMPが動いてない。そこで、ルータにtelnetして転送量を取得するpythonスクリプトを作った。(HOSTとPASSWORDはルータのものに書き換えてください)
#!/usr/bin/python import sys import telnetlib import re HOST = "10.10.11.1" PASSWORD = "" tn = telnetlib.Telnet(HOST) tn.read_until("Password: ") tn.write(PASSWORD + "\n") tn.write("console character ascii\n") tn.write("show status lan2\n") tn.write("show environment\n") tn.write("exit\n") buf = tn.read_all() print re.search(r"Received:.*\((\d*) octets\)", buf).group(1) print re.search(r"Transmitted:.*\((\d*) octets\)", buf).group(1) print re.search(r"Elapsed time from boot: (.+)", buf).group(1) print HOST
これを、MRTGから呼び出す。
# vim /etc/mrtg/mrtg.cfg
### RT57i ####
Target[rt57i]: `/usr/local/bin/rt57i.py`
MaxBytes[rt57i]: 1250000
Options[rt57i]: growright, integer
kilo[rt57i]: 1024
YLegend[rt57i]: Byte/sec
ShortLegend[rt57i]: byte/sec
LegendI[rt57i]: received
LegendO[rt57i]: transmitted
Title[rt57i]: Traffic Analysis for RT57i
PageTop[rt57i]: <h1>YAMAHA RT57i</h1>
pythonって、telnetプロトコルを使うようなライブラリすら標準で用意されているのは素晴らしすぎる。
参考:RT57i/外部の監視スクリプト/Python telnetlib/おまかせブログ
追記:RT58iでも上記のスクリプトは使えるようだ。
0 件のコメント:
コメントを投稿