Um vor Datenverlust zu schützen.
Zu den Möglichkeiten, mit denen Elasticsearch Ihnen die Datenverfügbarkeit zur Verfügung stellt, gehören:
Dieses Tutorial zeigt Ihnen, wie Sie Cluster -Snapshots erstellen. Dadurch können Sie vorbereitet sein, wenn ein irreversibler Datenfehlerereignis auftritt.
Lass uns anfangen.
Was ist ein Elasticsearch -Schnappschuss?
Wie bereits erwähnt, ist ein elastischer Schnappschuss eine Sicherungskopie eines laufenden Elasticsearch -Clusters. Dieser Schnappschuss kann in einem bestimmten Cluster einen gesamten Cluster- oder spezifischen Indizes und Datenströmen haben.
Wie Sie bald lernen werden, verwaltet ein Repository -Plugin Elasticsearch -Snapshots. Diese Schnappschüsse sind an verschiedenen vom Plugin definierten Speicherorten ausgestattet. Dazu gehören lokale Systeme und Remote -Systeme wie GCP -Speicher, Amazon EC2, Microsoft Azure und viele mehr.
So erstellen Sie ein Elasticsearch -Snapshot -Repository
Bevor wir in die Erstellung von Elasticsearch -Snapshots eintauchen, müssen wir ein Snapshot -Repository erstellen, da viele Dienste von Elasticsearch die Snapshot -API verwenden, um diese Aufgaben auszuführen.
Einige der von der Snapshot -API übernommenen Aufgaben sind:
Um ein Snapshot -Repository zu erstellen, verwenden wir den _snapshot -API -Endpunkt, gefolgt von dem Namen, den wir dem Snapshot -Repository zuweisen möchten. Betrachten Sie die folgende Anfrage, die ein Repository namens backup_repo erstellt hat
Put /_snapshot /backup_repoHier ist ein Curl -Befehl für die obige Anfrage:
curl -xput "http: // localhost: 9200/_snapshot/backup_repo" -h 'content -type: application/json' -d '"type": "fs", "Einstellungen": "Ort": "//////////////// Home/Root/Backups "," Compress ": true 'Um den Snapshot -Repository -Pfad zu übergeben, müssen Sie zuerst den Pfad des Systems oder das übergeordnete Verzeichnis zum Pfad hinzufügen.Repo -Eintrag in Elasticsearch.YML
Der Weg.Der Repo -Eintrag sollte ähnlich aussehen wie mit:
Weg.Repo: ["/home/root/backups"]Sie finden die Elasticsearch -Konfigurationsdatei in/etc/elasticsearch/elasticsearch.YML
NOTIZ: Nach dem Hinzufügen des Pfades.Repo, Sie müssen möglicherweise Elasticsearch -Cluster neu starten. Zusätzlich die für den Pfad unterstützten Werte.Repo kann je nach Plattform, die Elasticsearch ausführen, stark variieren.
So sehen Sie das Snapshot -Repository an
Verwenden Sie die GET -Anforderung mit dem Endpunkt _snapshot als:
Get /_snapshot /backup_repoSie können auch den folgenden Curl -Befehl verwenden:
curl -xget "http: // localhost: 9200/_snapshot/backup_repo"Auf diese Weise sollten Informationen zum Backup -Repository angezeigt werden, zum Beispiel:
Wenn Sie mehr als eine Snapshot -Repositorys haben und sich nicht an den Namen erinnern, können Sie den Repo -Namen weglassen und den _snapshot -Endpunkt aufrufen, um alle vorhandenen Repositories aufzulisten.
Get/_snapshot oder curl curl -xget http: // localhost: 9200/_snapshot
So erstellen Sie einen Elasticsearch -Snapshot
Das Erstellen eines Elasticsearch -Snapshots für ein bestimmtes Snapshot -Repository wird von der Snapshot -API erstellen. Die API erfordert den Snapshot -Repository -Namen und den Namen des Snapshots.
NOTIZ: Ein einzelnes Snapshot -Repository kann mehr als einen Schnappschuss der gleichen Cluster haben, solange sie eindeutige Identitäten/Namen haben.
Betrachten Sie die folgende Anfrage, um dem Backup_Repo -Repository einen Snapshot namens Snapshot_2021 hinzuzufügen.
Put/_snapshot/backup_repo/snapshot_2021Verwenden Sie den Befehl, um Curl zu verwenden:
curl -xput “http: // localhost: 9200/_snapshot/backup_repo/snapshot_2021”Der Befehl sollte eine Antwort von Elasticsearch mit 200 OK zurückgeben und akzeptiert: True
Da es nicht angegeben ist. Um anzugeben, welche Datenströme und -indizes sie sichern sollen.
Betrachten Sie die folgende Anfrage, die die Sicherung der Sicherung des .Kibana -Index (ein Systemindex) und gibt an, welcher Benutzer den Snapshot und den Grund autorisiert hat.
Put/_snapshot/backup_repo/snapshot_2Der Curl -Befehl dafür ist:
curl -xput "http: // localhost: 9200/_snapshot/backup_repo/snapshot_2" -h 'content -type: application/json' -d '"Indices": ".Kibana "," Ignore_unAverleable ": true," include_global_state ": true," metadata ": " tace_by ":" elasticadmin "," tace_because ":" Daily Backup " 'Der Ignore_unAverleable legt einen booleschen Status fest, der einen Fehler zurückgibt, wenn Datenströme oder Indizes im Snapshot fehlen oder geschlossen werden.
Der Parameter include_global_State speichert den aktuellen Status des Clusters, wenn wahr ist. Einige der gespeicherten Clusterinformationen umfassen:
NOTIZ: Sie können mehr als eine durch Kommas getrennte Indizes angeben.
Ein gemeinsames Argument, das mit dem _snapshot -Endpunkt verwendet wird, ist Wait_For_Completion, ein boolescher Wert, der definiert, ob (true) oder nicht (falsch) die Anforderung sofort nach der Initialisierung der Snapshot (Standard) zurückgeben oder auf eine Snapshot -Fertigstellung warten sollte.
Zum Beispiel:
Put/_snapshot/backup_repo/snapshot_3?wait_for_completion = trueDer Befehl curl lautet:
curl -xput "http: // localhost: 9200/_snapshot/backup_repo/snapshot_3?wait_for_completion = true "-h 'content -type: application/json' -d '" Indizes ":".Kibana "," Ignore_unAverleable ": true," include_global_state ": false," metadata ": " tace_by ":" elasticadmin "," tace_because ":" wöchentliches backup " 'Wenn Sie den Parameter wait_for_completion auf true eingestellt haben, geben Sie eine ähnliche Ausgabe an, die dem unten gezeigten ähnelt:
So sehen Sie Schnappschüsse
Die GET -Snapshot -API übernimmt die Snapshots -Funktionalität der Ansicht.
Alles, was Sie in die Anfrage übergeben müssen, ist das Snapshot -Repository und der Name des Snapshots, den Sie die Details anzeigen möchten.
Der Schnappschuss sollte mit Details zu einem bestimmten Snapshot antworten. Diese Details umfassen:
Um beispielsweise die Details zum oben erstellten Snapshot_3 anzuzeigen, verwenden Sie die unten angegebene Anforderung:
Get/_snapshot/backup_repo/snapshot_3Die Anfrage sollte eine Antwort mit den Details des Snapshots als:
Sie können auch die Anforderungsbehörde anpassen, um spezifische Details zu einem Snapshot zu erhalten. Wir werden uns jedoch vorerst nicht untersuchen.
Nehmen wir an, Sie möchten Informationen zu allen Schnappschüssen in einem bestimmten Snapshot -Repository anzeigen. In diesem Fall können Sie eine Asterisk -Wildcard in der Anfrage als:
Get/_snapshot/backup_repo/*Der Curl -Befehl dafür ist:
curl -xget "http: // localhost: 9200/_snapshot/backup_repo/*"Die Antwort ist eine detaillierte Mülldeponie aller Schnappschüsse in diesem Repository als:
Wildkarten sind sehr nützlich, um bestimmte Informationen über die Schnappschüsse zu filtern.
So löschen Sie einen Schnappschuss
Das Löschen eines Snapshots ist sehr einfach: Alles, was Sie tun müssen, ist die Löschenanforderung zu verwenden
Löschen/_snapshot/backup_repo/snapshot_2021/löschenDer Befehl curl lautet:
curl -xdelete “http: // localhost: 9200/_snapshot/backup_repo/snapshot_2021/"Die Antwort sollte anerkannt werden: wahr
Wenn der Snapshot nicht vorhanden ist, erhalten Sie einen 404 -Statuscode und einen Snapshot -fehlenden Fehler als:
Abschluss
In diesem Handbuch haben wir besprochen, wie Sie Elasticsearch -Snapshots mit der Snapshot -API erstellen können. Was Sie gelernt haben, sollte ausreichen, damit Sie ein Snapshot -Repository erstellen, die Snapshot -Repositorys anzeigen, Snapshots erstellen, anzeigen und löschen können. Obwohl Sie Anpassungen mit der API vornehmen können, sollte das Wissen in diesem Leitfaden ausreichen, um Ihnen den Einstieg zu erleichtern.
Vielen Dank für das Lesen.