用 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 集群设置。