Index-Snapshots in Amazon OpenSearch Service erstellen - OpenSearch Amazon-Dienst

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Index-Snapshots in Amazon OpenSearch Service erstellen

Snapshots in Amazon OpenSearch Service sind Backups der Indizes und des Status eines Clusters. Der Status beinhaltet Cluster-Einstellungen, Knoteninformationen, Index-Einstellungen und die Shard-Zuweisung.

OpenSearch Service-Snapshots gibt es in den folgenden Formen:

  • Automatisierte Snapshots dienen nur zur Cluster-Wiederherstellung. Sie können sie verwenden, um Ihre Domain im Falle eines roten Cluster-Status oder Datenverlusts wiederherzustellen. Weitere Informationen finden Sie weiter unten unter Snapshots wiederherstellen. OpenSearch Der Service speichert automatisierte Snapshots ohne zusätzliche Kosten in einem vorkonfigurierten Amazon S3 S3-Bucket.

  • Manuelle Snapshots dienen zur Cluster-Wiederherstellung oder zum Verschieben von Daten von einem Cluster zu einem anderen. Sie müssen manuelle Snapshots initiieren. Diese Snapshots werden in Ihrem eigenen Amazon-S3-Bucket gespeichert und es fallen die S3-Standardgebühren an. Wenn Sie über einen Snapshot aus einem selbstverwalteten OpenSearch Cluster verfügen, können Sie diesen Snapshot verwenden, um zu einer OpenSearch Service-Domain zu migrieren. Weitere Informationen finden Sie unter Migration zu Amazon OpenSearch Service.

Alle OpenSearch Service-Domains erstellen automatische Snapshots, aber die Häufigkeit unterscheidet sich in folgenden Punkten:

  • Für Domains, die OpenSearch oder Elasticsearch 5.3 und höher laufen, OpenSearch erstellt Service stündlich automatisierte Snapshots und speichert bis zu 336 davon 14 Tage lang. Stündliche Snapshots sind aufgrund ihrer inkrementellen Natur weniger störend. Sie bieten auch einen neueren Wiederherstellungspunkt für den Fall von Problemen mit Domains.

  • Bei Domains, auf denen Elasticsearch 5.1 und früher ausgeführt wird, erstellt OpenSearch Service täglich automatische Snapshots zu der von Ihnen angegebenen Stunde, speichert bis zu 14 davon und speichert keine Snapshot-Daten länger als 30 Tage.

Wenn Ihr Cluster in den roten Status wechselt, schlagen alle automatisierten Snapshots fehl, während der Cluster-Status bestehen bleibt. Wenn Sie das Problem nicht innerhalb von zwei Wochen beheben, können die Daten in Ihrem Cluster dauerhaft verloren gehen. Fehlerbehandlungsschritte finden Sie unter Roter Cluster-Status.

Voraussetzungen

Um Snapshots manuell zu erstellen, müssen Sie mit IAM und Amazon S3 arbeiten. Stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen, bevor Sie versuchen, einen Snapshot zu erstellen:

Voraussetzung Beschreibung
S3-Bucket

Erstellen Sie einen S3-Bucket, um manuelle Snapshots für Ihre OpenSearch Service-Domain zu speichern. Weitere Anleitungen finden Sie unter Erstellen eines Buckets im Benutzerhandbuch für Amazon Simple Storage Service.

Merken Sie sich den Namen des Buckets, um ihn an den folgenden Stellen zu verwenden:

  • Die Resource-Anweisung der IAM-Richtlinie, die Ihrer IAM-Rolle beigefügt ist

  • Der Python-Client, der zum Registrieren eines Snapshot-Repositorys verwendet wurde (wenn Sie diese Methode verwenden)

Wichtig

Wenden Sie keine S3 Glacier-Lebenszyklusregel auf diesen Bucket an. Manuelle Snapshots bieten keine Unterstützung für die Speicherklasse S3 Glacier.

IAM-Rolle

Erstellen Sie eine IAM-Rolle, um Berechtigungen an den Service zu delegieren. OpenSearch Detaillierte Anleitungen finden Sie unter Erstellen einer IAM-Rolle (Konsole) im IAM-Benutzerhandbuch. Das restliche Kapitel bezieht sich auf diese Rolle als TheSnapshotRole.

Anfügen einer IAM-Richtlinie

Hängen Sie die folgende Richtlinie an TheSnapshotRole an, um den Zugriff auf den S3-Bucket zuzulassen:

{ "Version": "2012-10-17", "Statement": [{ "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::s3-bucket-name" ] }, { "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::s3-bucket-name/*" ] } ] }

Anweisungen zum Anfügen einer Richtlinie an eine Rolle finden Sie unter Hinzufügen von IAM-Identitätsberechtigungen im IAM-Benutzerhandbuch.

Bearbeiten der Vertrauensstellung

Bearbeiten Sie die Vertrauensstellung vonTheSnapshotRole, um OpenSearch Service in der Principal Anweisung anzugeben, wie im folgenden Beispiel gezeigt:

{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": "sts:AssumeRole" }] }

Anweisungen zum Bearbeiten der Vertrauensstellung finden Sie unter Ändern einer Rollenvertrauensrichtlinie im IAM-Benutzerhandbuch.

Berechtigungen

Um das Snapshot-Repository zu registrieren, müssen Sie in der Lage sein, es an OpenSearch Service TheSnapshotRole weiterzuleiten. Sie benötigen außerdem Zugriff auf die Aktion es:ESHttpPut. Um diese beiden Berechtigungen zu erteilen, fügen Sie die folgende Richtlinie an die IAM-Rolle an, deren Anmeldeinformationen zum Signieren der Anforderung verwendet werden:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/TheSnapshotRole" }, { "Effect": "Allow", "Action": "es:ESHttpPut", "Resource": "arn:aws:es:region:123456789012:domain/domain-name/*" } ] }

Wenn Ihr Benutzer oder Ihre Rolle nicht über die iam:PassRole erforderlichen Berechtigungen verfügtTheSnapshotRole, tritt möglicherweise der folgende Fehler auf, wenn Sie im nächsten Schritt versuchen, ein Repository zu registrieren:

$ python register-repo.py {"Message":"User: arn:aws:iam::123456789012:user/MyUserAccount is not authorized to perform: iam:PassRole on resource: arn:aws:iam::123456789012:role/TheSnapshotRole"}

Registrieren eines manuellen Snapshot-Repositorys

Sie müssen ein Snapshot-Repository bei OpenSearch Service registrieren, bevor Sie manuelle Index-Snapshots erstellen können. Für diesen einmaligen Vorgang müssen Sie Ihre AWS Anfrage mit Zugangsdaten signieren, die für den Zugriff berechtigt sindTheSnapshotRole, wie unter beschriebenVoraussetzungen.

Schritt 1: Ordnen Sie die Snapshot-Rolle in OpenSearch Dashboards zu (wenn Sie eine differenzierte Zugriffskontrolle verwenden)

Eine differenzierte Zugriffskontrolle führt einen zusätzlichen Schritt bei der Registrierung eines Repositorys ein. Auch wenn Sie die HTTP-Basisauthentifizierung für alle anderen Zwecke verwenden, müssen Sie die manage_snapshots-Rolle Ihrer IAM-Rolle mit iam:PassRole-Berechtigungen zuordnen, um TheSnapshotRole zu übergeben.

  1. Navigieren Sie zum OpenSearch Dashboards-Plugin für Ihre Service-Domain. OpenSearch Sie finden den Dashboards-Endpunkt in Ihrem Domain-Dashboard in der OpenSearch Service-Konsole.

  2. Wählen Sie im Hauptmenü Sicherheit, Rollen, und wählen Sie die Rolle manage_snapshots.

  3. Wählen Sie Zugeordnete Benutzer, Mapping verwalten.

  4. Fügen Sie den ARN der Rolle hinzu, die über Berechtigungen zum Weitergeben von TheSnapshotRole verfügt. Platzieren Sie Rollen-ARNs unter Backend roles (Backend-Rollen).

    arn:aws:iam::123456789123:role/role-name
  5. Wählen Sie Zuordnen und bestätigen Sie, dass der Benutzer oder die Rolle unter Zugeordnete Benutzer angezeigt wird.

Schritt 2: Registrieren eines Repositorys

Auf der folgenden Registerkarte „Snapshots“ wird veranschaulicht, wie Sie ein Snapshot-Verzeichnis registrieren. Spezifische Optionen für die Verschlüsselung eines manuellen Snapshots und die Registrierung eines Snapshots nach der Migration zu einer neuen Domain finden Sie auf den entsprechenden Registerkarten.

Snapshots

Um ein Snapshot-Repository zu registrieren, senden Sie eine PUT-Anfrage an den Endpunkt der OpenSearch Service-Domäne. Sie können curl, den Python-Beispielclient, Postman oder eine andere Methode verwenden, um eine signierte Anfrage zur Registrierung des Snapshot-Repositorys zu senden. Beachten Sie, dass Sie in der OpenSearch Dashboards-Konsole keine PUT-Anfrage verwenden können, um das Repository zu registrieren.

Die Anfrage hat das folgende Format:

PUT domain-endpoint/_snapshot/my-snapshot-repo-name { "type": "s3", "settings": { "bucket": "s3-bucket-name", "base_path": "my/snapshot/directory", "region": "region", "role_arn": "arn:aws:iam::123456789012:role/TheSnapshotRole" } }
Anmerkung

Repository-Namen dürfen nicht mit „cs-“ beginnen. Darüber hinaus sollten Sie nicht von mehreren Domains in dasselbe Repository schreiben. Nur eine Domain sollte Schreibzugriff auf das Repository haben.

Wenn sich Ihre Domain in einer Virtual Private Cloud (VPC) befindet, muss Ihr Computer mit der VPC verbunden sein, damit die Anforderung zur erfolgreichen Registrierung des Snapshot-Repositorys erfolgt. Der Zugriff auf eine VPC unterscheidet sich je nach Netzwerkkonfiguration, wahrscheinlich muss eine Verbindung mit einem VPN oder Unternehmensnetzwerk hergestellt werden. Um zu überprüfen, ob Sie die OpenSearch Service-Domain erreichen können, navigieren Sie https://your-vpc-domain.region.es.amazonaws.com in einem Webbrowser zu und überprüfen Sie, ob Sie die Standard-JSON-Antwort erhalten.

Wenn sich Ihr Amazon S3 S3-Bucket in einer anderen AWS-Region als Ihrer OpenSearch Domain befindet, fügen Sie den Parameter "endpoint": "s3.amazonaws.com" zur Anfrage hinzu.

Encrypted snapshots

Sie können derzeit keine AWS Key Management Service (KMS-) Schlüssel zum Verschlüsseln manueller Snapshots verwenden, aber Sie können sie mit serverseitiger Verschlüsselung (SSE) schützen.

Um SSE mit S3-verwalteten Schlüsseln für den Bucket zu aktivieren, den Sie als Snapshot-Repository verwenden, fügen Sie dem "settings" Block der "server_side_encryption": true PUT-Anforderung etwas hinzu. Weitere Informationen finden Sie unter Schützen von Daten durch serverseitige Verschlüsselung mit Amazon S3-verwalteten Verschlüsselungsschlüsseln im Amazon Simple Storage Service-Benutzerhandbuch.

Alternativ können Sie AWS KMS Schlüssel für die serverseitige Verschlüsselung für den S3-Bucket verwenden, den Sie als Snapshot-Repository verwenden. Wenn Sie diesen Ansatz verwenden, stellen Sie sicher, dass Sie dem AWS KMS Schlüssel, der zur Verschlüsselung des S3-Buckets verwendet wird, die TheSnapshotRole Erlaubnis erteilen. Weitere Informationen finden Sie unter Schlüsselrichtlinien in AWS KMS.

Domain migration

Das Registrieren eines Snapshot-Repositorys ist ein einmaliger Vorgang. Um jedoch von einer Domain zu einer anderen zu migrieren, müssen Sie dasselbe Snapshot-Repository auf der alten und der neuen Domain registrieren. Der Repository-Name ist beliebig.

Berücksichtigen Sie die folgenden Richtlinien, wenn Sie zu einer neuen Domain migrieren oder dasselbe Repository bei mehreren Domains registrieren:

  • Fügen Sie beim Registrieren des Repositorys in der neuen Domain "readonly": true zum "settings"-Block der PUT-Anforderung hinzu. Diese Einstellung verhindert, dass Sie versehentlich Daten aus der alten Domain überschreiben. Nur eine Domain sollte Schreibzugriff auf das Repository haben.

  • Wenn Sie Daten zu einer Domain in einer anderen AWS-Region migrieren (z. B. von einer alten Domain und einem Bucket in us-east-2 zu einer neuen Domain in us-west-2), "region": "region" ersetzen Sie sie "endpoint": "s3.amazonaws.com" in der PUT-Anweisung durch und wiederholen Sie die Anfrage.

Verwenden des Python-Beispielclients

Der Python-Client ist einfacher zu automatisieren als eine einfache HTTP-Anfrage und bietet eine bessere Wiederverwendbarkeit. Wenn Sie diese Methode zum Registrieren eines Snapshot-Repositorys verwenden, speichern Sie den folgenden Python-Beispielcode als Python-Datei, z. B. register-repo.py. Der Client benötigt die Pakete AWS SDK for Python (Boto3), Anforderungen und requests-aws4auth. Der Client enthält auskommentierte Beispiele für andere Snapshot-Vorgänge.

Aktualisieren Sie die folgenden Variablen im Beispiel-Code: host, region, path, undpayload.

import boto3 import requests from requests_aws4auth import AWS4Auth host = '' # domain endpoint region = '' # e.g. us-west-1 service = 'es' credentials = boto3.Session().get_credentials() awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token) # Register repository path = '/_snapshot/my-snapshot-repo-name' # the OpenSearch API endpoint url = host + path payload = { "type": "s3", "settings": { "bucket": "s3-bucket-name", "base_path": "my/snapshot/directory", "region": "us-west-1", "role_arn": "arn:aws:iam::123456789012:role/snapshot-role" } } headers = {"Content-Type": "application/json"} r = requests.put(url, auth=awsauth, json=payload, headers=headers) print(r.status_code) print(r.text) # # Take snapshot # # path = '/_snapshot/my-snapshot-repo-name/my-snapshot' # url = host + path # # r = requests.put(url, auth=awsauth) # # print(r.text) # # # Delete index # # path = 'my-index' # url = host + path # # r = requests.delete(url, auth=awsauth) # # print(r.text) # # # Restore snapshot (all indexes except Dashboards and fine-grained access control) # # path = '/_snapshot/my-snapshot-repo-name/my-snapshot/_restore' # url = host + path # # payload = { # "indices": "-.kibana*,-.opendistro_security,-.opendistro-*", # "include_global_state": False # } # # headers = {"Content-Type": "application/json"} # # r = requests.post(url, auth=awsauth, json=payload, headers=headers) # # print(r.text) # # # Restore snapshot (one index) # # path = '/_snapshot/my-snapshot-repo-name/my-snapshot/_restore' # url = host + path # # payload = {"indices": "my-index"} # # headers = {"Content-Type": "application/json"} # # r = requests.post(url, auth=awsauth, json=payload, headers=headers) # # print(r.text)

Manuelle Snapshots erstellen

Snapshots erfolgen nicht augenblicklich. Sie sind zeitaufwändig und stellen keine perfekte Ansicht des Clusters dar. point-in-time Während ein Snapshot erstellt wird, können Sie weiterhin Dokumente indizieren und andere Anfragen an den Cluster stellen, aber neue Dokumente und Aktualisierungen bestehender Dokumente werden nicht im Allgemeinen in den Snapshot aufgenommen. Der Snapshot enthält primäre Shards, so wie sie bei der OpenSearch Initiierung des Snapshots vorhanden waren. Je nach der Größe Ihres Snapshot-Thread-Pools umfassen die Snapshots ggf. verschiedene Shards zu geringfügig unterschiedlichen Zeitpunkten. Bewährte Methoden für Snapshots finden Sie unterVerbessern Sie die Snapshot-.

Snapshot-Speicher und -Leistung

OpenSearch Snapshots sind inkrementell, d. h. sie speichern nur Daten, die sich seit dem letzten erfolgreichen Snapshot geändert haben. Diese inkrementelle Beschaffenheit bedeutet, dass der Unterschied in der Festplattennutzung zwischen häufigen und seltenen Snapshots oft minimal ist. Mit anderen Worten, die Erstellung stündlicher Snapshots für eine Woche (mit insgesamt 168 Snapshots) verbraucht möglicherweise nicht viel mehr Speicherplatz als ein einzelner Snapshot am Ende der Woche. Und je häufiger Sie Snapshots erstellen, desto weniger Zeit nimmt ihre Fertigstellung in Anspruch. Tägliche Snapshots können beispielsweise 20–30 Minuten dauern, während stündliche Snapshots innerhalb weniger Minuten abgeschlossen sein können. Manche OpenSearch Benutzer machen Schnappschüsse bis zu jeder halben Stunde.

Aufnehmen eines Snapshots

Beim Erstellen eines Snapshots geben Sie die folgenden Informationen an:

  • Den Namen Ihres Snapshot-Repositorys

  • Einen Namen für den Snapshot

In den Beispielen dieses Kapitels wird aufgrund der Einfachheit und Übersichtlichkeit der gängige HTTP-Client curl verwendet. Informationen zum Übergeben eines Benutzernamens und eines Passworts für Ihre Curl-Anfrage finden Sie im Tutorial Erste Schritte.

Wenn Ihre Zugriffsrichtlinien Benutzer oder Rollen angeben, müssen Sie Ihre Snapshot-Anfragen signieren. Für curl können Sie die --aws-sigv4Option mit Version 7.75.0 oder höher verwenden. Sie können auch die auskommentierten Beispiele im Python-Beispielclient verwenden, um signierte HTTP-Anfragen an dieselben Endpunkte zu stellen, die die curl-Befehle verwenden.

Führen Sie die folgenden Schritte aus, um einen manuellen Snapshot zu erstellen:

  1. Sie können keinen Snapshot erstellen, wenn gerade ein Snapshot ausgeführt wird. Um dies zu überprüfen, führen Sie den folgenden Befehl aus:

    curl -XGET 'domain-endpoint/_snapshot/_status'
  2. Führen Sie den folgenden Befehl aus, um einen manuellen Snapshot zu erstellen:

    curl -XPUT 'domain-endpoint/_snapshot/repository-name/snapshot-name'

    Um bestimmte Indizes ein- oder auszuschließen und andere Einstellungen festzulegen, fügen Sie einen Anforderungstext hinzu. Informationen zur Anforderungsstruktur finden Sie in der Dokumentation unter Schnappschüsse erstellen. OpenSearch

Anmerkung

Die Zeit, die für die Erstellung eines Snapshots benötigt wird, nimmt mit der Größe der OpenSearch Dienstdomäne zu. Bei lange laufenden Snapshot-Operationen tritt gelegentlich der folgende Fehler auf: 504 GATEWAY_TIMEOUT. In der Regel können Sie diese Fehler ignorieren und warten, bis der Vorgang erfolgreich abgeschlossen werden kann. Führen Sie den folgenden Befehl aus, um den Status aller Snapshots in Ihrer Domain zu überprüfen:

curl -XGET 'domain-endpoint/_snapshot/repository-name/_all?pretty'

Wiederherstellen von Snapshots

Bevor Sie einen Snapshot wiederherstellen, stellen Sie sicher, dass die Zieldomäne kein Multi-AZ mit Standby verwendet. Wenn Standby aktiviert ist, schlägt der Wiederherstellungsvorgang fehl.

Warnung

Wenn Sie Indexaliase verwenden, sollten Sie entweder die Schreibanforderungen an einen Alias beenden oder den Alias auf einen anderen Index umstellen, bevor Sie seinen Index löschen. Hierdurch lässt sich folgendes Szenario vermeiden:

  1. Sie löschen einen Index und dadurch auch dessen Alias.

  2. Eine fehlerhafte Schreibanforderung an einen jetzt gelöschten Alias erstellt einen neuen Index mit demselben Namen wie der Alias.

  3. Sie können den Alias aufgrund eines Namenskonflikts mit dem neuen Index nicht mehr verwenden. Wenn Sie den Alias zu einem anderen Index wechseln, geben Sie bei der Wiederherstellung von einem Snapshot "include_aliases": false an.

So stellen Sie einen Snapshot wieder her

  1. Ermitteln Sie den Snapshot, den Sie wiederherstellen möchten. Stellen Sie sicher, dass alle Einstellungen für diesen Index, z. B. benutzerdefinierte Analyzer-Pakete oder Einstellungen für Zuweisungsanforderungen, mit der Domäne kompatibel sind. Verwenden Sie den folgenden Befehl, um alle Snapshot-Repositorys anzuzeigen:

    curl -XGET 'domain-endpoint/_snapshot?pretty'

    Nachdem Sie das Repository ermittelt haben, können Sie mit dem folgenden Befehl alle gespeicherten Snapshots anzeigen:

    curl -XGET 'domain-endpoint/_snapshot/repository-name/_all?pretty'
    Anmerkung

    Die meisten automatischen Snapshots werden im cs-automated-Repository gespeichert. Wenn Ihre Domain Daten im Ruhezustand verschlüsselt, werden sie im cs-automated-enc Repository abgelegt. Wenn das gewünschte Repository für manuelle Snapshots nicht angezeigt wird, registrieren Sie es in der Domain.

  2. (Optional) Löschen Sie einen oder mehrere Indizes in der OpenSearch Service-Domäne oder benennen Sie ihn um, wenn Namenskonflikte zwischen den Indizes im Cluster und den Indizes im Snapshot auftreten. Sie können keinen Snapshot Ihrer Indizes in einem OpenSearch Cluster wiederherstellen, der bereits Indizes mit denselben Namen enthält.

    Sie haben die folgenden Optionen, wenn Sie Konflikte bei der Indexbenennung haben:

    • Löschen Sie die Indizes in der vorhandenen OpenSearch Service-Domain und stellen Sie dann den Snapshot wieder her.

    • Benennen Sie die Indizes um, wenn Sie sie aus dem Snapshot wiederherstellen, und indizieren Sie sie später neu. Informationen zum Umbenennen von Indizes finden Sie in dieser Beispielanforderung in der OpenSearch Dokumentation.

    • Stellen Sie den Snapshot in einer anderen OpenSearch Dienstdomäne wieder her (nur mit manuellen Snapshots möglich).

    Der folgende Befehl löscht alle vorhandenen Indizes in einer Domain:

    curl -XDELETE 'domain-endpoint/_all'

    Wenn Sie jedoch nicht alle Indizes wiederherstellen möchten, können Sie einfach einen löschen:

    curl -XDELETE 'domain-endpoint/index-name'
  3. Um einen Snapshot wiederherzustellen, führen Sie den folgenden Befehl aus:

    curl -XPOST 'domain-endpoint/_snapshot/repository-name/snapshot-name/_restore'

    Aufgrund spezieller Berechtigungen für die OpenSearch Dashboards und detaillierter Zugriffskontrollindizes schlagen Versuche, alle Indizes wiederherzustellen, möglicherweise fehl, insbesondere wenn Sie versuchen, die Wiederherstellung anhand eines automatisierten Snapshots durchzuführen. Im folgenden Beispiel wird nur der Index my-index aus 2020-snapshot im Snapshot-Repository cs-automated wiederhergestellt:

    curl -XPOST 'domain-endpoint/_snapshot/cs-automated/2020-snapshot/_restore' \ -d '{"indices": "my-index"}' \ -H 'Content-Type: application/json'

    Alternativ können Sie alle Indizes außer den Dashboards-Indizes und den Indizes der differenzierten Zugriffskontrolle wiederherstellen:

    curl -XPOST 'domain-endpoint/_snapshot/cs-automated/2020-snapshot/_restore' \ -d '{"indices": "-.kibana*,-.opendistro*"}' \ -H 'Content-Type: application/json'

    Mithilfe der Parameter und können Sie einen Snapshot wiederherstellen, ohne die zugehörigen Daten zu löschen. rename_pattern rename_replacement Weitere Informationen zu diesen Parametern finden Sie in den Anforderungsfeldern der Restore Snapshot API und in der OpenSearch Dokumentation als Beispielanforderung.

Anmerkung

Wenn nicht alle primären Shards für die entsprechenden Indizes zur Verfügung stehen, könnte ein Snapshot den state von PARTIAL aufweisen. Dieser Wert gibt an, dass Daten aus mindestens einem Shard nicht erfolgreich gespeichert wurden. Sie können aus einem Teil-Snapshot wiederherstellen, aber Sie müssen möglicherweise fehlende Indizes aus älteren Snapshots wiederherstellen.

Löschen von manuellen Snapshots

Führen Sie den folgenden Befehl aus, um einen manuellen Snapshot zu löschen:

DELETE _snapshot/repository-name/snapshot-name

Automatisieren von Snapshots mit Snapshot Management

Sie können in OpenSearch Dashboards eine Snapshot Management (SM) -Richtlinie einrichten, um das regelmäßige Erstellen und Löschen von Snapshots zu automatisieren. SM kann Snapshots von einer Gruppe von Indizes erstellen, wohingegen Index State Management nur einen Snapshot pro Index erstellen kann. Um SM in OpenSearch Service verwenden zu können, müssen Sie Ihr eigenes Amazon S3 S3-Repository registrieren. Anweisungen zur Registrierung Ihres Repositorys finden Sie unter Manuelles Snapshot-Repository registrieren.

Vor SM bot OpenSearch Service eine kostenlose, automatisierte Snapshot-Funktion an, die immer noch standardmäßig aktiviert ist. Diese Funktion sendet Snapshots an das vom Service verwaltete Repositorycs-*. Um die Funktion zu deaktivieren, wenden Sie sich an. AWS Support

Weitere Informationen zur SM-Funktion finden Sie in der OpenSearch Dokumentation unter Snapshot-Verwaltung.

SM unterstützt derzeit nicht die Erstellung von Snapshots für mehrere Indextypen. Wenn Sie beispielsweise versuchen, einen Snapshot für mehrere Indizes zu erstellen, wobei * sich einige Indizes in der Warm-Tier befinden, schlägt die Snapshot-Erstellung fehl. Wenn Ihr Snapshot mehrere Indextypen enthalten soll, verwenden Sie die ISM-Snapshot-Aktion, bis SM diese Option unterstützt.

Konfigurieren von Berechtigungen

Wenn Sie von einer früheren OpenSearch Service-Domain-Version auf 2.5 aktualisieren, sind die Sicherheitsberechtigungen für die Snapshot-Verwaltung möglicherweise nicht für die Domäne definiert. Benutzer ohne Administratorrechte müssen dieser Rolle zugeordnet werden, um die Snapshot-Verwaltung in Domänen mit detaillierter Zugriffskontrolle verwenden zu können. Gehen Sie wie folgt vor, um die Snapshot-Verwaltungsrolle manuell zu erstellen:

  1. Gehen Sie in OpenSearch Dashboards zu Sicherheit und wählen Sie Berechtigungen aus.

  2. Wählen Sie Aktionsgruppe erstellen und konfigurieren Sie die folgenden Gruppen:

    Group name (Gruppenname) Berechtigungen
    snapshot_management_full_access
    • cluster:admin/opensearch/snapshot_management/*

    • cluster:admin/opensearch/notifications/feature/publish

    • cluster:admin/repository/*

    • cluster:admin/snapshot/*

    snapshot_management_read_access
    • cluster:admin/opensearch/snapshot_management/policy/get

    • cluster:admin/opensearch/snapshot_management/policy/search

    • cluster:admin/opensearch/snapshot_management/policy/explain

    • cluster:admin/repository/get

    • cluster:admin/snapshot/get

  3. Wählen Sie Rollen und Rolle erstellen.

  4. Nennen Sie die Rolle snapshot_management_role.

  5. Wählen Sie für Clusterberechtigungen oder aus. snapshot_management_full_access snapshot_management_read_access

  6. Wählen Sie Erstellen.

  7. Nachdem Sie die Rolle erstellt haben, ordnen Sie sie einer beliebigen Benutzer- oder Backend-Rolle zu, die Snapshots verwaltet.

Überlegungen

Beachten Sie bei der Konfiguration der Snapshot-Verwaltung Folgendes:

  • Pro Repository ist eine Richtlinie zulässig.

  • Für eine Richtlinie sind bis zu 400 Snapshots zulässig.

  • Diese Funktion kann nicht ausgeführt werden, wenn Ihre Domain den Status Rot hat, unter hohem JVM-Druck steht (85% oder mehr) oder wenn die Snapshot-Funktion nicht mehr funktioniert. Wenn die allgemeine Indexierungs- und Suchleistung Ihres Clusters beeinträchtigt wird, kann dies auch für SM gelten.

  • Ein Snapshot-Vorgang beginnt erst, nachdem der vorherige Vorgang abgeschlossen ist, sodass keine gleichzeitigen Snapshot-Vorgänge durch eine Richtlinie aktiviert werden.

  • Mehrere Richtlinien mit demselben Zeitplan können zu einem Anstieg der Ressourcen führen. Wenn sich die Snapshot-Indizes der Richtlinien überschneiden, können die Snapshot-Operationen auf Festplattenebene nur sequentiell ausgeführt werden, was zu einem kaskadierten Leistungsproblem führen kann. Wenn sich die Richtlinien ein Repository teilen, kommt es zu einer Zunahme von Schreibvorgängen in dieses Repository.

  • Wir empfehlen Ihnen, die Automatisierung von Snapshot-Vorgängen nicht öfter als einmal pro Stunde einzuplanen, es sei denn, Sie haben einen speziellen Anwendungsfall.

Automatisieren von Snapshots mit Index-Statusmanagement

Sie können die Operation Index-Statusmanagement (ISM) snapshot verwenden, um automatisch Snapshots von Indizes basierend auf Änderungen des Alters, der Größe oder der Anzahl der Dokumente auszulösen. ISM eignet sich am besten, wenn Sie einen Snapshot pro Index benötigen. Informationen zum Erstellen eines Snapshots einer Gruppe von Indizes finden Sie unterAutomatisieren von Snapshots mit Snapshot Management.

Um SM in OpenSearch Service verwenden zu können, müssen Sie Ihr eigenes Amazon S3 S3-Repository registrieren. Ein Beispiel für eine Richtlinie, die den Vorgang snapshot verwendet, finden Sie unter Beispielrichtlinien.

Verwenden von Curator für Snapshots

Wenn ISM für die Index- und Snapshot-Verwaltung nicht funktioniert, können Sie stattdessen Curator verwenden. Es bietet eine erweiterte Filterfunktionalität zur Vereinfachung der Verwaltungsaufgaben auf komplexen Clustern. Verwenden Sie pip zum Installieren von Curator:

pip install elasticsearch-curator

Sie können Curator als Befehlszeilenschnittstelle (Command Line Interface, CLI) oder Python-API verwenden. Wenn Sie die Python-API verwenden, müssen Sie Version 7.13.4 oder früher des Legacy-elasticsearch-py-Clients verwenden. Sie unterstützt den opensearch-py-Client nicht.

Wenn Sie die CLI verwenden, exportieren Sie Ihre Anmeldeinformationen über die Befehlszeile und konfigurieren Sie curator.yml wie folgt:

client: hosts: search-my-domain.us-west-1.es.amazonaws.com port: 443 use_ssl: True aws_region: us-west-1 aws_sign_request: True ssl_no_validate: False timeout: 60 logging: loglevel: INFO