はじめに
お試しで立ちあげた 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
のバッファ機能を上手く使うことでログが途切れることなく移行出来るかもしれない