SLM でスナップショットと保持を自動化し、スナップショットの進捗を監視する
Elasticsearchスナップショットコマンド
# Take a snapshot every night at 01:30, keep for 30 days (at least 7, at most 60 snapshots):
PUT _slm/policy/gece-yedek
{
"schedule": "0 30 1 * * ?",
"name": "<gece-{now/d}>",
"repository": "yedek_repo",
"config": { "indices": ["*"], "include_global_state": true },
"retention": { "expire_after": "30d", "min_count": 7, "max_count": 60 }
}
# Run the policy now and see success/failure statistics:
POST _slm/policy/gece-yedek/_execute
GET _slm/stats
# Snapshot in progress and per-shard progress:
GET _snapshot/yedek_repo/_current
GET _snapshot/yedek_repo/_status
GET _cat/snapshots/yedek_repo?v&s=end_epoch:desc
# Verify that the repository is writable from all nodes:
POST _snapshot/yedek_repo/_verify概要
cron スケジュールでスナップショットを取得し、保持ルールに従って古いものを削除する SLM ポリシーを定義する。実行中のスナップショットのシャードごとの進捗、過去のスナップショット、リポジトリの到達可能性を表示する。
使用する場面
定期的なバックアップを設定する場合、夜間のスナップショットが失敗したというアラートの発生時、または長時間実行中のスナップショットがいつ終わるかを見積もる場合。
注意
スケジュールは UTC で評価される。複数のクラスタが同じリポジトリに書き込む場合、またはリポジトリが別のクラスタで書き込み可能として登録されている場合、リポジトリが破損する可能性がある。他のクラスタでは readonly: true を使用する。保持ルールは SLM が取得したスナップショットのみを削除する。include_global_state が true の場合、リストア時にテンプレートと persistent のクラスタ設定もリストアされることがある。