BIG-IPのSNMPグラフ取得

たぶん読者置いてきぼりシリーズ!!

会社でBIG-IPの運用状況のグラフを整備してたんですが、以下のサイトにcacti用テンプレートがあった。
http://devcentral.f5.com/Default.aspx?tabid=63&articleType=ArticleView&articleId=136
で、入れてみたけどこれはかなり便利。BIG-IP付属のグラフよりも便利かも。

Private MIBをチマチマ読んではsnmpbulkwalk投げてたのはいったいなんだったんだ!(ノ ゚Д゚)ノ ==== ┻━━┻

ただし、入れたままだとバグっているのかLB用のOSのCPU使用率が取れなかった。
Linux部分は簡単に取れるんだけどねー。

しょーがないのでcactiのソースを読んだ。phpデバッグは2回目だけど、var_dump を覚えたのでかなり楽だった。
Perlユーザ向けvar_dumpのイメージ

php: var_dump($var)
perl: print Data::Dumper::Dumper($var)

結果としては、rrdにデータを投入する際のコマンドがおかしい。
rrdtool update --template ←引数抜け 入力値
ってなってた。
で、この原因はmysqlに保存されているDataSource用のテーブルで当該データのrrd_nameが空になってた。
で、rrd_nameが空なので --template 入力値 となって rrdtoolがこけていた。

DataSource登録でデータがおかしいということはDataTemplateかDataInputMethodかに原因があると思うんだけど、時間切れで調査打ち切り。
とりあえず、対象療法

update poller_item set rrd_name = 'tmmcpu' where rrd_path like '%_tmmcpu_%';

あと、このCPU取得スクリプトがデフォルトのものの場合、CPU周りにカウンタがリセットされたときからの平均CPU使用率になるという欠点が。。。
いつリセットされてるのか知らんし。
デフォルトで10秒平均のCPU使用率取得のスクリプトがあるので、5秒とかに書き換えて利用したほうがいい。ってかそうしてます。

台数が多い場合は、5分平均で割り切って、毎回データを保存して、前回との差分とかにした方がいいかも。
pollingが並列処理ではなく逐次処理なので、sleepしてるのが非常に無駄になりそう。polling終わるのに数分とか。
次のpolling始まるし!


とまぁBIG-IPとcactiを両方使っている方向けの情報でした。