Warum weist mein Amazon-OpenSearch-Service-Cluster eine rote oder gelbe Statusanzeige auf?

Letzte Aktualisierung: 30.07.2021

Mein Amazon OpenSearch Service (Nachfolger von Amazon Elasticsearch Service) befindet sich im roten oder gelben Clusterstatus. Woran liegt das?

Kurzbeschreibung

Die Registerkarte Überwachung in Ihrer OpenSearch Service-Konsole zeigt den Status des am wenigsten fehlerfreien Index in Ihrem Cluster an. Ein Clusterstatus, der den roten Status anzeigt, bedeutet nicht, dass Ihr Cluster ausgefallen ist. Dieser Status weist vielmehr darauf hin, dass mindestens ein primärer Shard und seine Replikate keinem Knoten zugewiesen sind. Wenn Ihr Clusterstatus den gelben Status anzeigt, werden die primären Shards für alle Indizes Knoten in Ihrem Cluster zugewiesen. Die Replikat-Shards für mindestens einen Index werden jedoch keinem der Knoten zugewiesen.

Hinweis: Konfigurieren Sie Ihre Domain erst neu, wenn Sie den Status des roten Clusters zum ersten Mal aufgelöst haben. Wenn Sie versuchen, Ihre Domäne neu zu konfigurieren, wenn sie sich im Status eines roten Clusters befindet, könnte sie im Status „Verarbeitung“ stecken bleiben. Weitere Informationen zu Clustern, die sich im Status „Verarbeitung“ befinden, finden Sie unter Warum steckt meine Amazon OpenSearch Service-Domain im Status „Verarbeitung“ fest?

Ihr Cluster kann aus folgenden Gründen in den roten Status eintreten:

  • Ausfälle mehrerer Datenknoten
  • Verwenden einer korrupten oder roten Shard für einen Index
  • Hoher JVM-Speicherdruck oder CPU-Auslastung
  • Geringer Festplattenspeicher oder Festplattenversatz

Hinweis: In einigen Fällen können Sie möglicherweise Ihren roten Clusterstatus auflösen, indem Sie den Index aus einem automatisierten Snapshot löschen und dann wiederherstellen.

Ihr Cluster kann aus folgenden Gründen in den gelben Gesundheitszustand eintreten:

  • Erstellung eines neuen Index
  • Nicht genug Knoten, um den Shards oder Disk Skew zuzuweisen
  • Hoher JVM-Speicherdruck
  • Ausfall eines einzelnen Knotens
  • Die maximale Anzahl von Wiederholungen bei Shard-Zuweisungen wurde überschritten

Hinweis: Wenn sich Ihr gelber Clusterstatus nicht von selbst auflöst, können Sie den Status auflösen, indem Sie die Indexeinstellungen aktualisieren oder die nicht zugewiesenen Shards manuell umleiten. Wenn sich Ihr gelber Clusterstatus nicht selbst auflöst, identifizieren und beheben Sie die Grundursache. Wenden Sie die Best Practices für den Clusterzustand an, um den Status eines gelben.

Auflösung

Identifizieren des Grundes für Ihre nicht zugewiesenen Shards

Führen Sie die folgenden Schritte aus, um die nicht zugewiesenen Shards zu identifizieren:

1.    Listen Sie den nicht zugewiesenen Shard auf:

$ curl -XGET 'domain-endpoint/_cat/shards?h=index,shard,prirep,state,unassigned.reason' | grep UNASSIGNED

2.    Rufen Sie die Details ab, warum der Shard nicht zugewiesen ist:

$ curl -XGET 'domain-endpoint/_cluster/allocation/explain?pretty' -H 'Content-Type:application/json' -d'{"index": "<index name>", "shard": <shardId>, "primary":<true or false>}'

3.    (Optional) Löschen Sie für den Status des roten Clusters die besorgniserregenden Indizes und identifizieren und beheben Sie die Grundursache:

curl -XDELETE 'domain-endpoint/<index names>'

Identifizieren Sie dann die verfügbaren Snapshots und stellen Sie Ihre Indizes aus einem Snapshot wieder her:

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

Adressieren Sie für den Status eines gelben Clusters die Grundursache, damit Ihre Shards zugewiesen werden.

Fehlerbehebung bei Ihrem roten oder gelben Clusterstatus

Nicht genug Knoten, um den Shards zuzuweisen

Ein Replikat-Shard wird nicht demselben Knoten wie sein primärer Shard zugewiesen. Ein Cluster mit einem einzelnen Knoten und Replikat-Shards wird immer mit dem gelben Clusterstatus initialisiert. Einzelknoten-Cluster werden auf diese Weise initialisiert, da es keine anderen verfügbaren Knoten gibt, denen OpenSearch Service ein Replikat zuweisen kann.

Es gibt auch ein Standardlimit von „1.000“ für die Einstellung cluster.max_shards_per_node für OpenSearch Service Version 7.x und höher. Es ist eine bewährte Methode, die Einstellung cluster.max_shards_per_node auf den Standardwert „1000" zu setzen. Wenn Sie Shard-Zuweisungsfilter festlegen, um zu steuern, wie OpenSearch Service Shards zuweist, kann der Shard nicht mehr zugewiesen werden, da nicht genügend gefilterte Knoten vorhanden sind. Erhöhen Sie die Anzahl Ihrer Knoten, um diesen Knotenmangel zu vermeiden. Stellen Sie sicher, dass die Anzahl der Replikate für jeden primären Shard geringer ist als die Anzahl der Datenknoten. Sie können auch die Anzahl der Replika-Shards reduzieren. Weitere Informationen finden Sie unter Dimensionierung von OpenSearch Service-Domains und Entmystifizieren der OpenSearch-Service-Shard-Zuweisung.

Geringer Festplattenspeicher oder Festplattenversatz

Wenn nicht genügend Festplattenspeicher vorhanden ist, kann Ihr Cluster in den roten oder gelben Gesundheitszustand eintreten. Es muss genügend Festplattenspeicher vorhanden sein, um Shards aufzunehmen, bevor OpenSearch Service die Shards verteilt.

Verwenden Sie die folgende Syntax, um zu überprüfen, wie viel Speicherplatz für jeden Knoten in Ihrem Cluster verfügbar ist:

$ curl domain-endpoint/_cat/allocation?v

Weitere Informationen zu Problemen mit Speicherplatz finden Sie unter Wie behebe ich Fehler bei geringem Speicherplatz in meiner Amazon OpenSearch Service-Domain?

Starke Festplattenverzerrungen können bei einigen Datenknoten auch zu einem Problem mit geringem Speicherplatz führen. Wenn Sie sich entscheiden, Shards neu zuzuweisen, können die Shards während der Shard-Verteilung nicht mehr zugewiesen werden. Wie bringe ich die ungleiche Shard-Verteilung in meinem Amazon-OpenSearch-Service-Cluster wieder ins Gleichgewicht?

Die festplattenbasierten Shard-Zuweisungseinstellungen können auch zu nicht zugewiesenen Shards führen. Wenn beispielsweise die Metrik cluster.routing.allocation disk.watermark.low auf 50 GB festgelegt ist, muss die angegebene Menge an Festplattenspeicher für die Shard-Zuweisung verfügbar sein.

Verwenden Sie die folgende Syntax, um die aktuellen Einstellungen für die festplattenbasierte Shard-Zuweisung zu überprüfen:

$ curl -XGET domain-endpoint/_cluster/settings?include_defaults=true&flat_settings=true

Beachten Sie die folgenden Ansätze, um Probleme mit dem Festplattenspeicher zu beheben:

  • Löschen Sie alle unerwünschten Indizes.
  • Skalieren Sie das EBS-Volumen.
  • Fügen Sie weitere Datenknoten hinzu.

Hoher JVM-Speicherdruck

Jede Shard-Zuweisung verwendet CPU, Heap-Speicherplatz sowie Festplatten- und Netzwerkressourcen. Ein konstant hoher JVM-Speicherdruck könnte zu einer fehlgeschlagenen Shard-Zuweisung führen. Wenn beispielsweise der JVM-Speicherdruck 95% überschreitet, wird ein übergeordneter Speicherschutzschalter ausgelöst. Der Zuweisungs-Thread wird dann abgebrochen, sodass Shards nicht zugewiesen werden.

Um dieses Problem zu beheben, reduzieren Sie zuerst das JVM-Speicherdruckniveau. Nachdem der JVM-Speicherdruck reduziert wurde, sollten Sie diese zusätzlichen Tipps beachten, um Ihren Cluster wieder in den Zustand „Green Health“ zu versetzten:

  • Erhöhen Sie den Standard-Shard-Wiederholungswert von „5" oder höher.
  • Deaktivieren und aktivieren Sie den Replikat-Shard.
  • Versuchen Sie die nicht zugewiesenen Shards manuell erneut.

Weitere Informationen zur Reduzierung des JVM-Speicherdrucks finden Sie unter Wie behebe ich einen hohen JVM-Speicherdruck auf meinem Amazon OpenSearch Service-Cluster?

Ausfall von Knoten

Wenn in Ihrem Cluster ein Knotenausfall auftritt, werden Shards, die einem Knoten zugewiesen sind, nicht zugewiesen. Wenn für einen bestimmten Index keine Replikat-Shards verfügbar sind, kann selbst ein Ausfall eines einzelnen Knotens zu einem roten Gesundheitszustand führen. Durch zwei Replikat-Shards und eine Multi-AZ-Bereitstellung wird Ihr Cluster vor Datenverlust während eines Hardwarefehlers geschützt.

Wenn alle Ihre Indizes über einen Replikat-Shard verfügen, kann ein Ausfall eines einzelnen Knotens dazu führen, dass Ihr Cluster vorübergehend in den Status „Gelb“ wechselt. Wenn Ihr Cluster vorübergehend in den gelben Zustand wechselt, wird OpenSearch Service automatisch wiederhergestellt, sobald der Knoten wieder gesund ist. Oder OpenSearch Service erholt sich, wenn Shards einem neuen Knoten zugewiesen werden.

Sie können alle Knotenausfälle bestätigen, indem Sie Ihre Amazon CloudWatch-Metriken überprüfen. Weitere Hinweise zum Identifizieren eines Knotenausfalls finden Sie unter Fehlgeschlagene Clusterknoten.

Hinweis: Es ist auch eine bewährte Methode, jedem Index einen Replikat-Shard zuzuweisen oder dedizierte Master-Knoten zu verwenden und die Zonenbekanntheit zu aktivieren. Weitere Informationen finden Sie unter Umgang mit Fehlern auf der Elasticsearch-Website.

Die maximale Anzahl von Wiederholungen wurde überschritten

In OpenSearch Service darf Ihr Cluster das maximale Zeitlimit (5.000 ms) oder die Anzahl der Wiederholungen (5) für die Shard-Zuweisung nicht überschreiten. Wenn Ihr Cluster die maximalen Schwellenwerte erreicht hat, müssen Sie manuell eine Shard-Zuweisung auslösen. Um eine Shard-Zuweisung manuell auszulösen, deaktivieren und aktivieren Sie die Replikat-Shards für Ihre Indizes.

Eine Konfigurationsänderung in Ihrem Cluster kann auch die Shard-Zuweisung auslösen. Vermeiden Sie jedoch Konfigurationsänderungen an Ihrem Cluster, wenn dieser sich im Status „Red Health“ befindet. Weitere Informationen zur Shard-Zuweisung finden Sie unter Jeder Shard verdient ein Zuhause auf der Elasticsearch-Website.

Hinweis: Es ist keine bewährte Methode, die Shard-Zuweisung manuell auszulösen, wenn Ihr Cluster über eine hohe Arbeitslast verfügt. Wenn Sie alle Ihre Replikate aus einem Index entfernen, darf sich der Index nur auf primäre Shards verlassen. Wenn ein Knoten ausfällt, wechselt Ihr Cluster dann in den Status „Red Health“, da primäre Shards nicht zugewiesen bleiben.

Um einen Replikat-Shard zu deaktivieren, aktualisieren Sie den Wert number_of_replicas auf „0":

$ curl -XPUT 'domain-endpoint/<indexname>/_settings' -H 'Content-Type: application/json' -d'
{
  "index" : {
    "number_of_replicas" : 0
  }
}'

Stellen Sie außerdem sicher, dass die Einstellung index.auto_expand_replicas auf „false“ gesetzt ist. Wenn Ihr Cluster in den Status „Green Health“ zurückkehrt, können Sie den Wert index.number_of_replicas wieder auf den gewünschten Wert setzen, um die Zuweisung für Replikat-Shards auszulösen. Wenn die Shard-Zuweisung erfolgreich ist, wechselt Ihr Cluster in den Status „Green Health“.

Best Practices für den

Beachten Sie die folgenden Best Practices, um Ihren gelben oder roten Clusterstatus aufzulösen:

  • Richten Sie einen empfohlenen Amazon CloudWatch-Alarm für AutomatedSnapshotFailure ein. Mit dem Alarm können Sie sicherstellen, dass ein Snapshot verfügbar ist, mit dem Sie Ihre Indizes wiederherstellen können, ab dem Zeitpunkt, an dem Ihr Cluster in den roten Status wechselt.
  • Wenn Ihr Cluster einer anhaltend hohen Arbeitslast ausgesetzt ist, skalieren Sie Ihren Cluster. Weitere Informationen zur Skalierung Ihres Clusters finden Sie unter Wie kann ich eine Amazon OpenSearch Service-Domain hochskalieren?
  • Überwachen Sie Ihre Festplattenauslastung, den JVM-Speicherdruck und die CPU-Auslastung und stellen Sie sicher, dass die eingestellten Schwellenwerte nicht überschritten werden. Weitere Informationen finden Sie unter Empfohlene CloudWatch-Alarme und Cluster-Metriken.
  • Stellen Sie sicher, dass alle primären Shards über Replika-Shards verfügen, um sich vor Ausfällen von Knoten zu schützen.

Weitere Informationen zu Best Practices von OpenSearch Service finden Sie unter Best Practices für Amazon OpenSearch Service.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?