はじめに
お試しで立ちあげた Elasticsearch サーバーが予想に反して需要があってアップアップしてきたので一部のインデックスを別のサーバーに移してみたのでメモ。尚、下記の方法が全ての環境に適用出来るかは個別に検証する必要があると思われる。
尚、Elasticsearch のバージョン 1.0 からは SnapShot と Restore 機能が標準搭載になってお手軽にバックアップ、レストアを計画出来ると思われるが、それよりも前のバージョンについてあまり移行やバックアップ、レストアの情報を探すことが出来なかったので試行錯誤、ダメだったらどうしよう位の勢いでやってみた。
メモ
イメージ

事前準備
- 移行先の
Elasticsearchのバージョンは移行元と合わせたバージョンにする - 特に理由は無い
インデックスの移行
- 移行先の
Elasticsearchは停止しておく rsyncを利用して対象となるidenxのディレクトリごとrsyncをかける- 移行元と移行先の
idenxディレクトリの権限等は合わせておく - データ移行完了後に移行先の
Elasticsearchの再起動を行う - 正常に
Elasticsearchが起動したらelasticserch-head等で確認する
上記の方法で移行してどうだったか?
- とりあえず
Elasticsearchは起動した(良かった...) elasticserch-head等で確認してもデータが確認出来た- 複数のインデックスをバックアップしたインデックスと件数比較して差異が無いことを確認出来た
Elasticsearch のバージョンアップ
- 最新の
kibanaだとElasticsearchの0.90.9以上が必要なようでエラーが出た - 移行先の
Elasticsearchサーバーを0.90.12にバージョンアップした
バージョンアップしてみてどうだったか?
kibanaでのアクセスを確認出来た- 1 系へのバージョンアップはまたの機会に...
インデックスやクラスタ管理に kopf を使い始めた

index やクラスタを管理するプラグインに kopf というツールを紹介頂いたのでそちらを elasticsearch-head の代わりに利用するようにした。elasticsearch-head との使い勝手等を比較出来たらと考えている。
メモ(tips)
- サーバーを切り替える際には手際よく行う必要があるが
fluentdのバッファ機能を上手く使うことでログが途切れることなく移行出来るかもしれない