サーバ移設したCactiのグラフが表示されない?


世の中には、cacti と呼ばれるサーバ監視ツールがあります。
古いサーバから新しいサーバに移設する必要があり作業しました。

移設自体は凄く簡単。
1. cacti以下のディレクトリを転送。
2. データベースの cacti を dump、新サーバでインポート
3. 新サーバで cacti がアクセスする際に使うユーザーとパスワードを作成
これだけ。
後はWEBサーバの設定をしてブラウザ側で表示されれば完了!

のはずが。

サーバのデータや閾値の値は全てインポートされたのに、グラフが表示されない。グラフはphpで動的生成されているはずなので、データが存在していれば表示されるはず…が、表示されません。

結論から言うと、rrdファイルの問題。

ERROR: This RRD was created on other architecture

実際のrrdファイルの新サーバで表示させようとしたら上記のエラーが表示されます。何ぞ?と思ってググってみました。

[参考]

まさにコレ。古いサーバはOSが32bitで、新サーバは64bit。こういうパターン多いのでは無いでしょうか?RRDファイルは生成時にバイナリ化されるので、OS,CPUのアーキテクチャが違うと利用できないようです。

というわけで復旧方法。
まず、古いサーバの cacti/rra/ に入ります。ここで上記URLを参考にシェルスクリプトでバイナリからテキスト化(xml化)します。

for i in *.rrd ;do
rrdtool dump $i ${i%.rrd}.xml
done

それを新サーバの cacti/rra/ にコピー。そこで次のシェルスクリプトでrrd化します。

for i in *.xml ;do
rrdtool restore $i ${i%.xml}.rrd
done

これで完了。無事にcactiのグラフが表示されました。rrdtoolでのラブルでたまーにありそうな事例だったのでご紹介です。(MRTGとか)

サーバ監視で他には nagios があります。自分も以下の本を参考に色々作成しています。
[rakuten]001:9784774145822[/rakuten]

コメントを残す

メールアドレスが公開されることはありません。