Cacti: i386 -> x86_64へのデータ移行におけるトラブルについて; ERROR: This RRD was created on other architecture

最近、宅内用サーバ(NetBSD)を自作のi386マシンからML110G6/x86_64(amd64)へ置き換えたのですが、新マシンに移行したCactiで、グラフが正常に描画されないという事象が生じました。

具体的には、グラフの描画を試みた際、/var/log/httpd/error_logで;

ERROR: This RRD was created on other architecture

というエラーが表示されます。

この件について調べてみたところ、http://www.rawiriblundell.com/?p=916に同じ様なトラブルに見舞われた方がいらっしゃいました。

この方の解決方法をごく簡単にまとめると;

  1. SQLサーバに蓄積されているデータをmysqldumpでdumpし、新サーバにrestoreする。
  2. rrdtoolsで作られたデータも、rrdtoolコマンドでdumpし、新サーバへrestoreする。

というものです。具体的には:

1. DBのマイグレーション


oldcacti# mysqldump -u cacti -p > /tmp/cacti.sql

Enter password:

oldcacti# scp cacti.sql root@newcacti:/etc/cacti/

root@newcacti's password:

cacti.sql 100% 463KB 462.5KB/s 00:00

oldcacti#

とした後、新マシンで;

newcacti# mysql -u cacti -p < cacti.sql Enter password: newcacti#

とします。

2. rrdtoolsデータの移行


oldcacti# rrdtool dump filename.rrd > filename.xml

としてデータをXML形式でdump、その後dumpしたファイルをnewcactiへコピーして;

newcacti# rrdtool restore filename.xml > filename.rrd

でrestoreします。言うまでも無い事ですが、cronでkickされているscriptは新旧cacti共にあらかじめ停止しておかないと大変なことになります。

なお大抵の場合、rrdファイルは数十個にのぼるケースが大半ですので、そういう場合は先に示したWebペイジにある様なsh、awk、sedを屈指する方法で一気にデータを変換するのが得策でしょう。

カテゴリー: Cacti, NetBSD パーマリンク