ElasticsearchのデータをバックアップするSnapshot機能

Elasticsearchをアンインストールする前にデータをエクスポートする方法を調査しているときの覚書。

環境: CentOS Steam 9, Elasticsearch 8.11.3, Kibana 8.11.3


1.ElasticsearchのSnapshot機能を理解する。

ElasticsearchのデータをバックアップするにはSnapshotの機能を使う。

またコマンドラインで実行できるelasticdumpというツールがある。

今回はSnapshotの機能を使ってみる。

大人しく公式サイトのドキュメントを読む。

Snapshotを作成するには2ステップ必要。

  1. リポジトリを登録(Snapshotの保存場所を登録)
  2. Snapshotを作成

dataディレクトリごとコピーしてもバックアップにはならないと書いてある。


2.リポジトリを登録する。

バックアップする場所を作ってElasticsearchが書き込めるようにする。
# mkdir /home/backups
# chown elasticsearch. /home/backups/

KibanaにログインしてDev Toolsからコマンド発行。

PUT _snapshot/test1
{
  "type": "fs",
  "settings": {
    "location": "/home/backups/test1"
  }
}

エラー。

{
  "error": {
    "root_cause": [
      {
        "type": "repository_exception",
        "reason": "[test1] location [/home/backups/test1] doesn't match any of the locations specified by path.repo because this setting is empty"
      }
    ],
    "type": "repository_exception",
    "reason": "[test1] failed to create repository",
    "caused_by": {
      "type": "repository_exception",
      "reason": "[test1] location [/home/backups/test1] doesn't match any of the locations specified by path.repo because this setting is empty"
    }
  },
  "status": 500
}

path.repoを設定しないといけないらしい。
設定追加する。
# less /etc/elasticsearch/elasticsearch.yml

path.repo: /home/backups

Elasticsearch再起動。
# systemctl restart elasticsearch

もう一度Dev Toolsからコマンド発行。

PUT _snapshot/test1
{
  "type": "fs",
  "settings": {
    "location": "/home/backups/test1"
  }
}

acknowledged(認められた)と返ってきた。
確認。
# ls /home/backups/

ディレクトリが作られている。


2.Snapshotを作成する。

Dev ToolsからSnapshot作成。

PUT _snapshot/test1/231221

ディレクトリ確認
# ls /home/backups/test1/

Dev Toolsからリポジトリの一覧、snapshotの一覧を確認。
参考: Get snapshot repository API | Elasticsearch Guide [8.11] | Elastic

GET _snapshot/test1/
GET _snapshot/test1/*


3.Snapshotを削除する。

API経由でリクエストを送信するだけ。
参考: Delete snapshot API | Elasticsearch Guide [8.11] | Elastic

DELETE _snapshot/test1/231221

確認。

GET _snapshot/test1/*


だんだんElasticsearchに慣れてきた。


【関連記事】