Elasticsearchのスナップショット機能を使用してバックアップを行います。
スナップショット機能の詳細はElasticsearchの公式ドキュメントを参照してください。
Kubernetes masterサーバにログインします。詳細は、「第2章 共通の操作」を参照してください。
以下のコマンドを実行し、リポジトリを作成してください。
<スナップショットへのパス>に指定された任意の名前で、fj-esdp-system-elasticsnapshot-pvのspec.nfs.pathで指定されたパス配下にディレクトリが作成されます。
「インストールガイド」の「2.4.2 Log Managementのインストール」-「3. PersistentVolumeを作成します。」に従って作成した elasticsearch_pv.ymlを使用した場合、NFSサーバーの/var/FJSGHD/fj-esdp-system-elasticsnapshot-volume/配下に、指定された任意の名前のディレクトリが作成されます。
<リポジトリ名>は、上記のスナップショットへのパスを管理する名前を指定します。
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
}'
リポジトリの一覧
以下のコマンドを実行することで、作成済みのリポジトリ一覧を参照することができます。
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/<リポジトリ名>/*