世の中には、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]