Wazuh Indexer „yellow“ wegen unassigned Shards – was tun?
Im Thread von Ewin Loppe ging es um ein typisches Thema in Wazuh-/OpenSearch-Umgebungen: Der Cluster-Status ist gelb, einige Shards sind unassigned, und Dev Tools werfen plötzlich 403 / security_exception.
Schauen wir uns an, warum das passiert – und wie man es sauber behebt.
1. Ausgangslage: Cluster „yellow“ und unassigned Shards
Ewin hat den Clusterzustand geprüft:
curl -k -u admin:***** https://IP:9200/_cluster/health?pretty
Ausgabe (gekürzt):
{
"cluster_name" : "wazuh-cluster",
"status" : "yellow",
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 452,
"unassigned_shards" : 8
}
Außerdem zeigte _cat/shards, dass es sich um .opendistro-* und .opensearch-* Indizes handelt – also Systemindizes. Für diese sah man jeweils:
- einen Shard mit
STARTED - einen zweiten mit
UNASSIGNED
→ Klassischer Fall: Replik-Shards auf einem Single-Node-Cluster.
2. Warum ist der Status gelb?
Kurz:
- green = alle Primary- und Replica-Shards zugewiesen
- yellow = alle Primaries zugewiesen, aber mindestens ein Replica-Shard unassigned
- red = Primaries fehlen → kritisch
In Ewins Fall:
number_of_nodes: 1unassigned_shards: 8- alle unassigned sind Replica-Shards von Systemindizes wie
.opendistro-alerting-alerts.
OpenSearch (und damit Wazuh Indexer) versucht Replica-Shards auf andere Knoten zu legen. Aber es gibt nur einen Node – also:
„a copy of this shard is already allocated to this node“ → Replica kann nicht auf denselben Node gelegt werden → bleibt unassigned → Status = yellow.
Das ist auf Einzelknoten nicht gefährlich, aber unschön – und nervig, wenn man’s sauber haben will.
3. Versuch über Dev Tools – und das 403-Problem
Ewin hat richtigerweise versucht, über Dev Tools die Anzahl der Replikas zu reduzieren:
PUT .opendistro-*/_settings
{
"index.number_of_replicas" : 0,
"index.auto_expand_replicas": false
}
Antwort:
{
"error": {
"type": "security_exception",
"reason": "no permissions for [] and User [name=admin, backend_roles=[admin]...]"
},
"status": 403
}
Das wirkt kontraintuitiv:
Man ist als admin im Dashboard unterwegs – und hat trotzdem keine Berechtigung, Systemindizes zu ändern.
Warum?
- Der OpenSearch-Sicherheitslayer (Security Plugin) schützt Systemindizes besonders streng.
- Der Dashboard-User
adminarbeitet nicht zwingend mit denselben Rechten wie der technische Zertifikats-Admin (admin.pem). - Für viele Low-Level-Aktionen sind Zertifikat-basierte Requests direkt am Indexer die zuverlässigere Methode.
4. Analyse der unassigned Shards
Sehr hilfreich (und von Othniel vorgeschlagen):
GET _cat/shards?v=true&h=index,shard,prirep,state,node,unassigned.reason&s=state
Und dann für ein konkretes Beispiel:
GET _cluster/allocation/explain?filter_path=index,node_allocation_decisions.node_name,node_allocation_decisions.deciders.*
{
"index": ".opendistro-alerting-alerts",
"shard": 0,
"primary": false
}
Antwort u. a.:
{
"decider": "same_shard",
"decision": "NO",
"explanation": "a copy of this shard is already allocated to this node [...]"
}
Damit ist klar: Es handelt sich um Replica-Shards Der Indexer verweigert sie, weil der Primary schon auf demselben Node liegt.
5. Saubere Lösung auf Single-Node-Cluster: Replikas auf 0 setzen
Wenn du nur einen Indexer-Knoten hast, brauchst du keine Replikas. Im Gegenteil: auf einem Single Node sind sie sogar sinnlos.
Ziel:
index.number_of_replicas = 0
für alle .opendistro-* und .opensearch-* Indizes.
Schritt 1 – Per Zertifikat direkt am Indexer arbeiten
Auf dem Indexer-Host:
curl --cacert /etc/wazuh-indexer/certs/root-ca.pem \
--cert /etc/wazuh-indexer/certs/admin.pem \
--key /etc/wazuh-indexer/certs/admin-key.pem \
-XPUT "https://127.0.0.1:9200/.opendistro-*/_settings" \
-H 'Content-Type: application/json' \
-d '{"index":{"number_of_replicas":0}}'
Optional noch für .opensearch-*:
curl --cacert /etc/wazuh-indexer/certs/root-ca.pem \
--cert /etc/wazuh-indexer/certs/admin.pem \
--key /etc/wazuh-indexer/certs/admin-key.pem \
-XPUT "https://127.0.0.1:9200/.opensearch-*/_settings" \
-H 'Content-Type: application/json' \
-d '{"index":{"number_of_replicas":0}}'
Wichtig:
127.0.0.1→ direkt auf dem Indexeradmin.pem+admin-key.pem→ technischer Superuser- Diese Requests umgehen die RBAC-Einschränkungen, die du im Dashboard siehst.
Du solltest als Antwort jeweils etwas mit "acknowledged": true sehen.
Schritt 2 – Clusterzustand erneut prüfen
curl --cacert /etc/wazuh-indexer/certs/root-ca.pem \
--cert /etc/wazuh-indexer/certs/admin.pem \
--key /etc/wazuh-indexer/certs/admin-key.pem \
"https://127.0.0.1:9200/_cluster/health?pretty"
Wenn alles passt:
unassigned_shardssollte 0 seinstatusbleibt auf Single Node manchmal trotzdem „yellow“, z. B. wenn es andere Spezialindices gibt – in deiner Konstellation sollten die 8 unassigned-Systemshards aber weg sein.
6. Alternative: Mehrere Indexer-Knoten statt Replika=0
Langfristig ist die robustere (und „grünere“) Variante:
- mindestens 3 Indexer-Knoten
- Replikas > 0 (typisch: 1)
- Shards werden automatisch verteilt
- Cluster kann einen Node verlieren, ohne Daten zu verlieren
Auf einem Single-Node-Cluster ist aber Replikas=0 die pragmatische und korrekte Einstellung.
7. Zusammenfassung
Problem:
- Clusterstatus yellow
- 8
unassigned_shards, alle Replica-Shards von.opendistro-*/.opensearch-* - Dev Tools → 403
security_exceptionbeim Ändern von Index-Settings
Ursachen:
- Single-Node-Cluster kann Replica-Shards nicht verteilen
- Dashboard-User
admindarf Systemindizes nicht anpassen (RBAC)
Lösung:
- Per Zertifikat direkt am Indexer einloggen
- Für
.opendistro-*und.opensearch-*:"index.number_of_replicas": 0 - Cluster-Health kontrollieren
Damit sind:
- die unassigned Replica-Shards weg
- die Shard-Anzahl konsistent
- und dein Monitoring deutlich entspannter
https://wazuh.slack.com/archives/C0A933R8E/p1765188207956149
Quelle
Dieser Artikel stammt aus dem Wazuh-Blog von m.a.x. it (veröffentlicht am 8. Dezember 2025).
Unterstützung von m.a.x. it
Bei Einführung, Betrieb und Feintuning von Wazuh (SIEM) unterstützt Sie m.a.x. it mit SIEM-Services auf Open-Source-Basis.
Über m.a.x. it Die m.a.x. Informationstechnologie AG ist seit über 30 Jahren IT-Partner mittelständischer und großer Unternehmen in München und bietet maßgeschneiderte Lösungen und Services in den Bereichen Cloud, Cybersecurity, Netzwerk, Windows, Linux und Softwareentwicklung. Sie haben eine Frage zu diesem Artikel oder brauchen Unterstützung?
