Cactiのグラフを1分間隔で出力するには + おまけ
Cactiのグラフを1分間隔で出力するときのメモ。まぁCactiってよりrrdtoolがポイントなんだけど。。
Poller
値を取得するPollerの設定は2つです。
Cactiの管理画面
Cactiにログインして
(Configuration) Settings > Poller
と進んで「Poller Interval」と「Cron Interval」をそれぞれ「Every Minute」とする。
cron
pollerのcronを1分間隔に変更
* * * * * php /path/to/cacti/poller.php > /dev/null 2>&1
> /dev/nullってやるとイス投げられるらしいよ
Data Templates
Pollerは値を取るだけで、こっちだけ変えても肝心のグラフは相変わらず5分間隔で出力されるので、グラフも1分間隔で出力されるようにData Templatesも変更する。
同じくCactiにログインして
(Templates) Data Templates
から変更したいテンプレートを選択する。
テンプレート設定の「Data Source」項目の「Step」が300(=5分)になっているのでこれを「60」に変更する。
…今こうしてまとめてみて思ったんだけど、今後の運用のことを考えるとチェックボックにチェック付けておくのもいいかもしれない
もう作っちゃったグラフはどうすんだよ問題
↑の2つの設定にしておいて新しくグラフを作成すると1分間でグラフが出力されるようになるけど、Data Templatesの設定はグラフ作成時(rrdtool create)の設定項目なので、既存のグラフには反映されない。
既存のグラフも設定を変更する場合はrrdtoolコマンドをつかう。(これが書きたかった)
で、よくCPUやメモリの最大値を変更するときはrrdtool tuneってオプションつけて値を変更してて、今回もこれでいけるもんだと考えてたんだけど(余裕余裕って調子のってた)、どうやら「Step」はtuneで変更できないらしい。
Stepは rrdtool create 時の項目ですね。
んでまぁ色々試行錯誤してみたら
してやれば普通に値が変更されることを確認したので
#!/bin/sh TMPDIR="/path/to/tmpdir" cd /path/to/cacti/rra for rrd in `ls -1 *.rrd`; do rrdtool info $rrd | grep step rrdtool dump $rrd $TMPDIR/$rrd.xml sed -i s/\<step\>300/\<step\>60/g $TMPDIR/$rrd.xml mv $rrd $TMPDIR/$rrd.bk rrdtool restore $TMPDIR/$rrd.xml $rrd chown cactiuser:cactiuser $rrd rrdtool info $rrd | grep step done
みたいな簡単なシェルを書いて(すごく無理やりっぽいけど)変更しました。
いや、CPUだけでいいよって時は`ls -1 *cpu*.rrd`みたくしとけばおk
おまけ!
関係ないけどCactiつながりってことで。
Graph Tressの設定でItemを追加するとき(ホストとか)ツリーに表示する順番を変えるのって結構めんどい。
小さい↑↓のアイコンをポチポチって。。登録ホストがたくさんあるときはまじ地獄。
実は最近知ったんだけど、これ「Sorting Type」って設定がある。しかも目の前にある。。
デフォは「Manual Ordering(No Sorting)」になってるので、これを「Natural Ordering」にしてやるとそれっぽく勝手にソートしてくれる。
いや、これ盲点っていうか。。今までの苦労はなんだったんだよ。。