Snapshots und Aufbewahrung mit SLM automatisieren, Snapshot-Fortschritt überwachen
ElasticsearchSnapshotBefehl
# 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/_verifyWas es tut
Definiert eine SLM-Policy, die nach einem cron-Zeitplan Snapshots erstellt und alte gemäß einer Aufbewahrungsregel löscht; zeigt den Fortschritt eines laufenden Snapshots pro Shard, frühere Snapshots und die Erreichbarkeit des Repositorys.
Wann einsetzen
Beim Einrichten regelmäßiger Backups, bei einem Alarm über einen fehlgeschlagenen nächtlichen Snapshot oder beim Abschätzen, wann ein lang laufender Snapshot fertig wird.
Vorsicht
Der Zeitplan wird in UTC ausgewertet. Schreibt mehr als ein Cluster in dasselbe Repository oder ist das Repository auf einem anderen Cluster als beschreibbar registriert, kann es beschädigt werden; auf den anderen Clustern readonly: true verwenden. Die Aufbewahrung löscht nur von SLM erstellte Snapshots. include_global_state true kann bei einem Restore auch Templates und persistente Cluster-Einstellungen wiederherstellen.