Elasticsearchのスナップショット機能を使用してバックアップを行います。
スナップショット機能の詳細はElasticsearchの公式ドキュメントを参照してください。
Kubernetes masterサーバーにログインします。詳細は、「第2章 共通の操作」を参照してください。
以下のコマンドを実行し、リポジトリを作成してください。
<スナップショットへのパス>に指定された任意の名前で、「インストールガイド」の「2.2.3 ストレージ設定ファイル」で設定したElasticsearchが使用するストレージに、スナップショットのディレクトリが作成されます。
<リポジトリ名>は、上記のスナップショットへのパスを管理する名前を指定します。
$ curl http://`kubectl -n fj-esdp-system get svc | grep 'elasticsearch-master '| awk -F " " '{print $3}'`:9200/_snapshot/<リポジトリ名> \ -X PUT \ -H 'Content-Type: application/json' \ -d '{ "type": "fs", "settings": { "location": "<スナップショットへのパス>", "compress": true } }'
作成済みのリポジトリにスナップショットを作成します。
一部のインデックスをバックアップする場合
以下のコマンドを実行し、スナップショットを作成してください。
<インデックス名>には存在するインデックス名を指定します。
<スナップショット名>は重複しない名前を指定します。
$ curl http://`kubectl -n fj-esdp-system get svc | grep 'elasticsearch-master '| awk -F " " '{print $3}'`:9200/_snapshot/<リポジトリ名>/<スナップショット名>?wait_for_completion=true \ -X PUT \ -H 'Content-Type: application/json' \ -d '{ "indices": "<インデックス名>", "ignore_unavailable": true, "include_global_state": false }'
全インデックスをバックアップする場合
以下のコマンドを実行し、kibanaのインデックスをリネームします。
$ curl http://`kubectl -n fj-esdp-system get svc | grep 'elasticsearch-master '| awk -F " " '{print $3}'`:9200/_reindex?pretty \ -X POST \ -H 'Content-Type: application/json' \ -d '{ "source": { "index": ".kibana" }, "dest": { "index": "backup.kibana" } }'
以下のコマンドを実行し、スナップショットを作成してください。
$ curl http://`kubectl -n fj-esdp-system get svc | grep 'elasticsearch-master '| awk -F " " '{print $3}'`:9200/_snapshot/<リポジトリ名>/<スナップショット名>?wait_for_completion=true \ -X PUT \ -H 'Content-Type: application/json' \ -d '{ "indices": "*", "ignore_unavailable": true, "include_global_state": false }'
リポジトリの一覧
以下のコマンドを実行することで、作成済みのリポジトリ一覧を参照することができます。
$ curl http://`kubectl -n fj-esdp-system get svc | grep 'elasticsearch-master '| awk -F " " '{print $3}'`:9200/_snapshot/
スナップショットの一覧
以下のコマンドを実行することで、作成済みのスナップショット一覧を参照することができます。
また各スナップショットに含まれるインデックス名も確認することができます。
$ curl http://`kubectl -n fj-esdp-system get svc | grep 'elasticsearch-master '| awk -F " " '{print $3}'`:9200/_snapshot/<リポジトリ名>/*