DBAtlas · Atlas für Datenbankbetrieb

Elasticsearch-Cluster red/yellow & nicht zugewiesene Shards

Symptom

_cluster/health 'red' oder 'yellow'; nicht zugewiesene Shards; Lese-/Schreibvorgänge eingeschränkt oder Daten nicht erreichbar.

1. Farbe und Ursache

yellow = Replica Shards sind nicht zugewiesen (Daten vorhanden, Ausfallsicherheit reduziert). red = mindestens ein PRIMARY Shard fehlt (diese Daten sind nicht erreichbar). Bestimme zuerst, welcher Fall vorliegt und warum.

Elasticsearch

GET _cluster/health?level=indices
GET _cluster/allocation/explain

2. Nicht zugewiesene Shards und Grund auflisten

Die Spalte unassigned.reason nennt die Ursache (NODE_LEFT, ALLOCATION_FAILED, DISK usw.).

Elasticsearch

GET _cat/shards?v&h=index,shard,prirep,state,unassigned.reason&s=state

3. Die häufigen Ursachen angehen

1) Disk Watermark → oberhalb von low erhält der Knoten keine neuen Shards; bei flood_stage werden Indizes schreibgeschützt. 2) Ein Knoten ist ausgefallen bzw. hat den Cluster verlassen. 3) Die Allokation wurde deaktiviert gelassen. 4) Replica-Anzahl > Anzahl geeigneter Knoten.

4. Beheben

Hebe die Blockade je nach zutreffender Ursache auf.

Elasticsearch

# If disk space was freed, remove the read-only block (7.4+ also lifts it automatically once below the high watermark):
PUT _all/_settings {"index.blocks.read_only_allow_delete": null}
# If allocation was left restricted, return it to the default (all):
PUT _cluster/settings {"persistent":{"cluster.routing.allocation.enable":null}}
# Retry failed allocations:
POST _cluster/reroute?retry_failed=true

5. Wenn weiterhin red und der Primary wirklich verloren ist

Stelle den betroffenen Index aus einem Snapshot wieder her oder führe aus den Quelldaten einen Reindex durch (_reindex). Dauerhaft: Alarme für Disk Watermarks, eine passende Replica-Anzahl (≥1) und Überwachung der Knotengesundheit.

In DBAtlas öffnen →