SLM APIによるバックアップの自動化


基本的なスナップショットの作成、スナップショットによるインデックスの復元、スナップショットの削除は含まれません.関連コンテンツは、次のリンクの位置で整理されています.
https://velog.io/@yaincoding/スナップショット-作成-インデックス-バックアップ-リカバリ
Elastic Searchが提供するslm(snapshot lifecycle Management)というAPIを使用して、スナップショットを手動で作成できます.スナップショットの作成サイクルを設定したり、古いスナップショットを削除したり、スナップショット名をフォーマットしたりすることができます.また、gcp、awss 3などのクラウドプラットフォームに追加で生成されたスナップショットを送信するプラグインもサポートされているため、スナップショットの作成の自動化を容易に実現できます.

1.スナップショット作成の自動化

PUT /_slm/policy/wiki-snapshot-policy
{
  "schedule": "0 */15 * * * ?",
  "name": "<wiki-snapshot-{now/m{yyyyMMddHHmm|+09:00}}>",
  "repository": "wiki_backup",
  "config": {
    "indices": ["wiki"]
  },
  "retention": {
    "expire_after": "10d",
    "min_count": 5,
    "max_count": 30
  }
}
  • wiki-snapshot-policy
    スナップショットポリシーの作成
  • schedule
    スナップショット作成サイクルはcron作成フォーマットと同じ
  • name
    スナップショット名をフォーマットします.主な作成日を含むように作成します.+09:00 UTC韓国時間
  • repository
    スナップショットを保存するリポジトリ.生成されたrepositoryに
  • を設定することができる.
  • expire_after
    基準を削除します.ここで、スナップショットを
  • に設定して、10日後のスナップショットを削除します.
  • min_count
    最小スナップショット数.expire after(現在のスナップショットが5つを超える場合)は
  • を削除しません.
  • max_count
    最大スナップショット数.expire afterこの値を超えると、最も古いスナップショットから
  • が削除されます.
    スナップショットを15分周期で作成します.スナップショットは、1時間あたり0分、15分、30分、45分の15分おきに作成され、wiki backup repositoryパスに格納されます.
    あと15分で、スナップショットのリストを表示します.
    GET /_snapshot/wiki_backup/_all

    21時7分にポリシーが作成されたので、初めてスナップショットを作成したのは21時15分です.生成されたスナップショットの名前は2115で終わり、予定通りにスナップショットが作成されました.そして15分後の21時30分にスナップショットを作成しました.
    ここでは、Elastic Searchを実行するサーバのローカルにスナップショットを格納します.ただし、slmでサポートされている複数のリポジトリプラグインを使用して、hdfs、aws、gcp、azureなどのクラウドにスナップショットを格納することもできます.
    クラウドリポジトリプラグインについて知りたい場合は、次のリンクを参照してください.
    https://www.elastic.co/guide/en/elasticsearch/plugins/7.14/repository.html