Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Warum befindet sich mein OpenSearch-Service-Cluster im roten oder gelben Status?
Mein Amazon-OpenSearch-Service-Cluster hat einen roten oder gelben Clusterstatus.
Kurzbeschreibung
Die Registerkarte Überwachung in der OpenSearch-Service-Konsole zeigt den Status des Index mit der geringsten Fehlerrate im Cluster an. Ein roter Status tritt auf, wenn OpenSearch Service einen oder mehrere primäre Shards und deren Replikate nicht zugewiesen hat. Der gelbe Status tritt auf, wenn OpenSearch Service alle primären Shards zugewiesen hat, aber ein oder mehrere Replikat-Shards nicht zugewiesen hat.
Wichtig: Ein roter Cluster-Status weist auf eine teilweise Nichtverfügbarkeit der Daten hin. Ein gelber Status bedeutet zwar keinen Datenverlust, aber der gelbe Status bedeutet, dass es dem Cluster an vollständiger Redundanz mangelt. Wenn ein Knoten ausfällt, kann es zu Datenverlust kommen.
Lösung
Wichtig: Um eine Domain neu zu konfigurieren, musst du zuerst den roten Cluster-Status lösen. Wenn du versuchst, eine Domain mit rotem Status neu zu konfigurieren, bleibt sie möglicherweise im Status „Wird geändert“ stecken.
Die Ursache für nicht zugewiesene Shards identifizieren
Verwende das AWSSupport-TroubleshootOpenSearchRedYellowCluster-Runbook, um die Grundursache der nicht zugewiesenen Shards zu identifizieren und zu beheben. Eine Anleitung findest du unter Instructions (Anweisungen) auf AWSSupport-TroubleshootOpenSearchRedYellowCluster.
Oder führe den folgenden Befehl aus, um die nicht zugewiesenen Shards manuell zu identifizieren:
curl -XGET 'domain-endpoint/_cat/shards?h=index,shard,prirep,state,unassigned.reason' | grep UNASSIGNED
Hinweis: Ersetze domain-endpoint durch deinen Domain-Endpunkt. Notiere dir in der Ausgabe die Shard-ID.
Führe dann den folgenden Befehl aus, um Details darüber zu erhalten, warum der Shard nicht zugewiesen wurde:
curl -XGET 'domain-endpoint/_cluster/allocation/explain?pretty' -H 'Content-Type:application/json' -d'{ "index": "index-name", "shard": shardID, "primary": false }'
Hinweis: Ersetze domain-endpoint durch deinen Domain-Endpunkt, index-name durch deinen Indexnamen und shardID durch die ID des nicht zugewiesenen Shards. Wenn der Shard ein primärer Shard ist, ersetze falsch durch wahr.
Einen roten oder gelben Status beheben
Gehe wie folgt vor, um zu ermitteln, warum der Cluster-Status gelb oder rot ist:
-
Überprüfe die Amazon-CloudWatch-Metriken ClusterStatus.yellow, ClusterStatus.red, Shards.unassigned, CPUUtilization, JVMMemoryPressure und FreeStorageSpace.
-
Führe die folgende Abfrage aus, um die betroffenen Indizes zu identifizieren:
GET /_cat/indices?v&health=yellow GET /_cat/indices?v&health=red -
Führe die folgende Abfrage aus, um zu verstehen, warum die Shards für alle Indizes nicht zugewiesen sind:
GET /_cluster/allocation/explainHinweis: Die Ausgabe dieses Befehls zeigt dir einen umfassenden Überblick über nicht zugewiesene Shards und deren Zuweisungsstatus im gesamten Cluster. Du kannst diese Informationen verwenden, um dir einen allgemeinen Überblick über Zuweisungsprobleme zu verschaffen.
Um einen roten Cluster-Status zu lösen, führe den folgenden Befehl aus, um die roten Indizes zu löschen:
curl -XDELETE 'domain-endpoint/index-names'
Hinweis: Ersetze domain-endpoint durch deinen Domain-Endpunkt und index-names durch deinen Indexnamen.
Stelle dann die Indizes aus einem Snapshot wieder her.
Wenn sich der gelbe Cluster-Status nicht von selbst löst, verwende die Informationen darüber, warum der Shard nicht zugewiesen wurde, um die Grundursache zu beheben.
Nicht genügend Knoten, um sie den Shards zuzuweisen
Primär- und Replikat-Shards müssen sich auf unterschiedlichen Knoten befinden. Daher werden Einzelknoten-Cluster mit Replikat-Shards immer mit einem gelben Status initialisiert, da OpenSearch Service keine Replikat-Shards zuweisen kann.
OpenSearch Service Versionen 7.x und höher haben ein Standardkontingent von 1000 für cluster.max_shards_per_node. Es hat sich bewährt, den Standardwert für cluster.max_shards_per_node zu verwenden. Weitere Informationen findest du unter Cluster-level shard, block, and task settings (Shard-, Block- und Aufgabeneinstellungen auf Clusterebene) auf der OpenSearch-Website.
Wenn du Filter für die Shard-Zuweisung festlegst, kann die Zuweisung des Shards aufgehoben werden, da er nicht über genügend gefilterte Knoten verfügt. Weitere Informationen zu Shard-Zuweisungsfiltern findest du unter Index-level index settings (Indexeinstellungen auf Indexebene) auf der OpenSearch-Website.
Gehe wie folgt vor, um dieses Problem zu vermeiden:
- Erhöhe die Anzahl der Knoten.
- Stelle sicher, dass die Anzahl der Replikate für jeden primären Shard geringer ist als die Anzahl der Datenknoten.
- Reduziere die Anzahl der Replikat-Shards.
Weitere Informationen findest du unter Größe von OpenSearch-Service-Domains anpassen und OpenSearch-Service-Shard-Zuweisung verständlich erklärt.
Probleme mit dem Speicherplatz
Wenn nicht genügend Festplattenspeicher zur Verfügung steht, kann der Cluster einen roten oder gelben Integritätsstatus annehmen. Der Knoten muss über ausreichend Speicherplatz für Shards verfügen, bevor OpenSearch Service die Shards verteilt.
Führe den folgenden Befehl aus, um zu überprüfen, wie viel Speicherplatz für jeden Knoten im Cluster verfügbar ist:
curl domain-endpoint/_cat/allocation?v
Hinweis: Ersetze domain-endpoint durch deinen Domain-Endpunkt.
Wenn du Shards ungleichmäßig verteilst, geht einigen Knoten möglicherweise der Speicherplatz aus, während andere über Kapazität verfügen. Dies kann zu Problemen bei der Neuzuweisung von Shards führen, da OpenSearch Service während des Ausgleichsprozesses keine neuen Shards zuweisen kann.
Führe den folgenden Befehl aus, um die Shard-Verteilungseinstellungen zu überprüfen:
curl -XGET domain-endpoint/_cluster/settings?include_defaults=true&flat_settings=true
Hinweis: Ersetze domain-endpoint durch deinen Domain-Endpunkt.
Es hat sich bewährt, den Festplattenspeicher regelmäßig zu überwachen und Probleme mit der Festplattenverzerrung proaktiv anzugehen, um den Cluster-Zustand zu beheben.
Weitere Informationen findest du unter Wie behebe ich Probleme mit geringem Speicherplatz in meiner OpenSearch-Service-Domain?und Wie gleiche ich die ungleichmäßige Shard-Verteilung in meinem OpenSearch-Service-Cluster aus?
Hoher JVM-Speicherdruck
Die Shard-Zuweisung ist ein ressourcenintensiver Prozess, der CPU-, Heap-Speicher-, Festplatten- und Netzwerkressourcen nutzt. Ein konstant hoher Java Virtual Machine (JVM)-Speicherdruck kann die erfolgreiche Shard-Zuweisung beeinträchtigen. Um dieses Problem zu lösen, behebe den hohen JVM-Speicherdruck. Nachdem du den JVM-Speicherdruck reduziert hast, ergreife die folgenden Maßnahmen, um den Cluster wieder in einen grünen Status zu versetzen:
- Führe den folgenden Befehl aus, um den standardmäßigen Shard-Wiederholungswert zu erhöhen:
Hinweis: Ersetze index-name durch deinen Indexnamen und 10 durch deinen Wiederholungswert.PUT /index-name/_settings { "index.allocation.max_retries": 10 } - Ändere den Shard-Wiederholungswert auf 0, um die Replikat-Shards zu deaktivieren. Ändere ihn dann auf einen positiven Wert, um die Shards wieder zu aktivieren.
Knotenausfälle
Knotenausfälle führen dazu, dass die ihnen zugewiesenen Shards wieder freigegeben werden. Ohne Replikat-Shards kann selbst der Ausfall eines einzelnen Knotens zu einem roten Zustandsstatus führen. Wenn du jedoch Indizes mit Replikat-Shards konfigurierst, führt ein Knotenausfall in der Regel zu einem vorübergehenden gelben Status. Dieser gelbe Status tritt auf, wenn OpenSearch Service automatisch wiederhergestellt wird. Der gelbe Status endet, wenn der ausgefallene Knoten wieder fehlerfrei ist oder wenn OpenSearch Service anderen Knoten Shards neu zuweist.
Gehe wie folgt vor, um dich vor Hardwareausfällen zu schützen:
- Verteile Knoten in mehreren Availability Zones.
- Stelle sicher, dass für jeden Index mindestens ein Replikat-Shard vorhanden ist.
- Aktiviere dedizierte Hauptknoten.
- Verbessere die Fehlertoleranz der Domain.
- Verwende CloudWatch-Metriken, um den Cluster-Zustand zu überwachen, sodass du Fehler schnell erkennen und darauf reagieren kannst.
Weitere Informationen zur Identifizierung eines Knotenausfalls findest du unter Ausgefallene Clusterknoten.
Wiederkehrender gelber Cluster-Zustand
Die Cluster können aus den folgenden Gründen häufig den gelben Zustand aufweisen:
- Vorübergehende Knotenausfälle oder Neustarts, die auftreten, wenn Knoten vorübergehend ausfallen und die Zuweisung von Replikat-Shards aufgehoben wird
Hinweis: Der Cluster könnte sich von selbst wiederherstellen, wenn dieser Knoten wieder verfügbar ist oder wenn OpenSearch Service die Shards erneut ausgleicht. - Du überschreitest aufgrund von Ressourcenbeschränkungen oder Konfigurationsproblemen das Kontingent für die Shard-Zuweisung oder das Kontingent für Wiederholungsversuche.
- Bei Clustern mit hoher Ressourcennutzung können planmäßige Wartungen, Sicherungsaufträge oder starke Lastspitzen auftreten, sodass Knoten schwanken oder Shard-Zuweisungen ablehnen.
- Durch ein wiederkehrendes Upgrade oder einen automatisch erstellten Index wurden neue Replikate erstellt, welche die Kapazität des Clusters überschreiten.
Gehe wie folgt vor, um den wiederkehrenden gelben Zustand zu verhindern und zu beheben:
- Stelle bei Einzelknoten-Clustern sicher, dass alle Indizes 0 Replikate haben.
Hinweis: Bei Einzelknoten-Clustern verwaltet und konfiguriert OpenSearch Service automatisch Systemindizes als opendistro_security. Du kannst die Einstellungen für Systemindizes nicht ändern. - Behalte bei Clustern mit mehreren Knoten mindestens einen Replikatknoten bei. Erhöhe die Anzahl der Knoten und Replikate, um eine höhere Redundanz zu erzielen.
- Konfiguriere eine Multi-AZ-Domain für eine hohe Verfügbarkeit und Fehlertoleranz.
Hinweis: Wenn die Shard-Zuweisung fehlschlägt, stelle sicher, dass die Anzahl der Knoten im Cluster, in Availability Zones und in Standby-Konfiguration deinen Cluster-Anforderungen entspricht. - Wenn es dem Shard nicht gelungen ist, eine speicherinterne Sperre zu erreichen, erhöhe den Wert index.allocation.max_retries.
- Um eine Erschöpfung der Ressourcen zu vermeiden, skaliere die Domain bei hoher Auslastung hoch.
- Um Änderungen des Ressourcenbedarfs proaktiv zu überwachen, erstelle einen CloudWatch-Alarm für die Metriken ClusterStatus.yellow, ClusterStatus.red, JVMMemoryPressure, AutomatedSnapshotFailure und FreeStorageSpace.
Weitere Informationen findest du unter Bewährte Methoden für den Betrieb von OpenSearch Service.
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 4 Monaten