Elasticsearch Backup and Restore
Elasticsearch でバックアップとリストアをさくっとやる方法です。
ちなみにElasticsearchではsnapshotというのが正解ぽいですが、面倒なんでバックアップで。
OS コマンドラインは Ubuntu 16.04/18.04 あたり準拠です。
1. Backup
1.1. バックアップ PATH の追加
バックアップディレクトリを [elastcsearch:elasticsearch] のユーザ権限で予め作成しておきます。
バックアップ(スナップショット)が吐かれる場所の設定です。
S3とかに吐き出すモジュールとかもあるので、そのうち書きたいと思います。
#
# Path to snapshot
#
path.repo: ["<path to backup>"]
1.2. 再起動しよう
バックアップ PATH の反映しましょう。
> systemctl restart elasticsearch.service
1.3. バックアップのレポジトリ設定
バックアップ(スナップショット)のレポジトリ設定しておきます。
この際に、バックアップ PATH がないと(確か)怒られます。
> curl -XPUT localhost:9200/_snapshot/<レポジトリ名> -H 'Content-Type: application/json' -d'
{
"type": "fs",
"settings": {
"location": "<path to backup>"
}
}'
1.4. バックアップしよう
全部取るように書いてあるので、* のとこを indices 名にすれば、それが取れるはずです。はず。
,
区切りとかにすればその分の indices が取れるはずです。はず。
> curl -XPUT localhost:9200/_snapshot/<レポジトリ名>/<バックアップ名>?pretty&wait_for_completion=true -H 'Content-Type: application/json' -d '{
"indices": "*",
"ignore_unavailable": "true",
"include_global_state": false
}'
1.5. バックアップしたやつをドナドナする
適当にバックアップディレクトリを tar とかで固めて、リストアしたいサーバとかに持ってきましょう。
もちろん、持ってかなくてもそのサーバだけで使ってもOKです。
2. Restore
バックアップしたので、リストアもしとかないとってことで、リストアします。
2.1. リストア側にバックアップ PATH を追加
バックアップディレクトリを [elastcsearch:elasticsearch] のユーザ権限で予め作成しておきます。
1.1 と同じです。
#
# Path to snapshot
#
path.repo: ["<path to backup>"]
2.2. 再起動してみる
1.2 と同じですね。
> systemctl restart elasticsearch.service
2.3. バックアップのレポジトリ設定
1.3 と同じ・・・
> curl -XPUT localhost:9200/_snapshot/<レポジトリ名> -H 'Content-Type: application/json' -d'
{
"type": "fs",
"settings": {
"location": "<path to backup>"
}
}'
2.4. リストアしよう
リストアしてみます。
> curl -XPOST localhost:9200/_snapshot/<レポジトリ名>/<バックアップ名>/_restore
3. おまけ
レポジトリとかバックアップの一覧とか見るには。
3.1. レポジトリ一覧
> curl -XGET localhost:9200/_cat/repositories?v
id type
snapshot fs
3.2. バックアップ一覧
レポジトリ名:snapshot の場合
> curl -XGET localhost:9200/_cat/snapshots/snapshot?v
id status start_epoch start_time end_epoch end_time duration indices successful_shards failed_shards total_shards
snapshot_1 SUCCESS 1531294342 07:32:22 1531294427 07:33:47 1.4m 395 1955 0 1955
snapshot_2 SUCCESS 1542699331 07:35:31 1542699561 07:39:21 3.8m 880 4396 0 4396
4. 参照