oranie's blog

旧:iをgに変えると・・・なんだっけ・・・

cactiでテンプレートだけを引越ししたいけど、ちまちまexportしたく無い場合の手段


前提としては新しい環境はcactiを初めからインストールした直後で、
テンプレートだけ他の環境からコピーしたい場合です。
既に動いている環境とマージする方法では無いのでその点は注意を。


手順としては、cacti配下にあるテンプレートで利用しているスクリプトを移動して
DBの情報をdump→インポートするという手順です。
僕の場合はcacti内部にある

<path_cacti>/resource
<path_cacti>/scripts

上記ディレクトリに必要なxmlファイル、bashスクリプトperlスクリプト等が
秘伝のタレと化しているので、まるまるコピーします。

次に、DBからデータをダンプします。

mysqldump -u root -p cacti > cacti_hiden_no_tare.sql

でダンプ。


次にこれを適当な作業サーバで一度インポートします。
手順としては、Cactiをインストールした後、上記のコピーしたファイルをまるっと追加して

mysql -u root -p cacti < cacti_hiden_no_tare.sql

でインポート。
※インポートする前に一度DBをdropした方が良いかも知れないですね。僕はやりました!必要ないかも!

上記の設定が終わったらcactiの画面へアクセスしてみると今の設定情報がまるまる
コピーされていると思います。
但し、監視hostとかはまっさらにしたかったので、この辺のいらない情報を一度消しましょう。


いらない管理情報とかの削除が終わったら以下のテーブルのauto incrementをリセットします。
これをしないと、移行先で新しくhost追加した場合、元のIDを引き継いだIDが振られます。
気にしない人はそのままでも良いんじゃないでしょうか?

で、僕がリセットしたテーブルは以下の通り。

data_local:rrdデータの管理番号テーブル?
graph_local:グラフテンプレートの管理番号テーブル?
graph_tree_items:グラフツリーの管理番号テーブル?
host:登録したホストの管理テーブル
poller_item:pollerの管理番号テーブル?


上記のテーブルに対して、

ALTER TABLE <テーブル名> AUTO_INCREMENT = 0;

を実行しましょう。


ここまで来たら、再度DBのデータをダンプして移行先にインポートすれば
テンプレートの設定とかだけ引き継いだ状態で可能な限りにクリアな
Cactiが作れると思います。


テンプレートのIDとかは引き継いだ状態なので、この辺も綺麗にしたい人は
頑張ってその手順を僕に教えて下さい><