cactiでグラフがコマ切れになる

問題というのがおこったので調査。ちなみにこんな感じになった

最初は一部のサーバのみだったし コマ切れサーバの snmpd を疑ったけど snmpd 使ってないグラフもコマ切れになっているので、まずは cacti の詳細なログを確認しよう!ということで consol -> settings -> General -> Poller Logging Level を debug に設定、これでガンガンログが吐き出されるようになる。

まず、ログを見ていて気になったのが

POLLER: Poller[0] WARNING: Poller Output Table not Empty.

というログ。明らかに問題ありそうなので調べてみたけど、いまいち状況つかめず。さらにログを見てみたら

SYSTEM STATS: Time:430.7131

というログがあって、これがおそらくポーリングにかかった時間なのだろうけど、おかしい。ポーリングは5分間隔なのに明らかに5分以上かかっている、、、、。
ということで、ポーリング処理が5分以上かかってポーリングが二重に走ってしまうのが問題なんじゃないかと推理。

cacti のポーリング処理には php で動く cmd.php というのが標準であってほかに cactid 今でいう spine という C で動くポーリングツールがあってこっちが高速らしいので spine を入れてみることにする。

最初はおてがる yum インストールと行きたかったんだけど rpmforge のパッケージが古いので最新版ソースを公式から落としてきてインストールすることに

# wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz
# tar zxvf cacti-spine-0.8.7e.tar.gz 
# cd cacti-spine-0.8.7e
# ./configure --prefix=/usr/local/spine
# make
# make install

でインストール完了、あとは cacti に spine のパスを登録して poller を spine にする。 consol -> settings -> Paths -> Spine Poller File Path に /usr/local/spine/bin/spine と登録。 consol -> settings -> poller -> Poller Type を spine にする。

また spine の設定ファイルが cacti と別であって、そこに mysql の設定を行なう。

# vi /usr/local/spine/etc/spine.conf

ということで、ログを再度確認

SYSTEM STATS: Time:23.7131

はやっ