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/explain2. 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=state3. 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=true5. 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.