Suresh und Bhanu meldeten ein Problem, das in vielen produktiven Wazuh-Installationen auftaucht:
Plötzlich ist das Dashboard nicht erreichbar, Queries schlagen fehl – und der Wazuh-Indexer meldet:
circuit_breaking_exception
[parent] Data too large, data for [<http_request>] would be [3.8gb]
which is larger than the limit of [3.7gb]
Ein klassischer Fall von:
Zu wenig Heap – zu viel Arbeit für den Indexer
OpenSearch (bzw. der Wazuh-Indexer) schützt sich selbst vor Out-of-Memory-Situationen. Wenn eine Operation (z. B. eine Suche, Aggregation oder ein großes JSON-Dokument) mehr Speicher benötigt, als die JVM erlaubt, bricht der „Circuit Breaker“ die Ausführung ab.
Das verhindert einen Absturz – aber es bedeutet auch:
Dein Indexer hat nicht genug Heap-RAM, um die Anfrage auszuführen.
Im vorliegenden Fall:
- Server hat 8 GB RAM
- JVM-Limit lag bei ca. 3.7 GB
- Query benötigte 3.8 GB
→ und wurde daher abgewürgt.
Warum passiert das überhaupt?
Der Wazuh-Indexer lädt bei Suchanfragen u. a.:
- Felder aus Dokumenten
- Aggregationen
- große Result-Sets
- Skriptfields, Sortierungen, Mappings
- eventuell auch „Fielddata“ für Textfelder
Wenn der Heap zu klein ist, reichen wenige GB an Daten in einem Query aus, um die Grenze zu überschreiten.
Die Lösung: Heap vergrößern – aber richtig
Wazuh-Team-Mitglied Bony John erklärt:
Faustregel für die JVM-Heap-Größe
- max. 50 % des gesamten System-RAM
- nicht mehr als 32 GB (wegen Pointer-Komprimierung der JVM)
Bei 8 GB RAM bedeutet das:
Heap auf 4 GB setzen
Dazu:
Schritt 1: RAM prüfen
free -h
Schritt 2: JVM-Heap anpassen
Datei öffnen:
/etc/wazuh-indexer/jvm.options
Eintragen:
-Xms4g
-Xmx4g
Die Werte müssen identisch sein – die JVM arbeitet in diesem Fall stabiler und fragmentiert weniger.
Schritt 3: Dienste neu starten
systemctl daemon-reload
systemctl restart wazuh-indexer
systemctl restart wazuh-dashboard
Nach dem Neustart sollte der Circuit Breaker nicht mehr anschlagen.
„Wir haben aber nicht viel RAM – hilft RAM-Upgrade?“
Bhanu fragte, ob ein RAM-Upgrade eine langfristige Lösung ist.
Ja, absolut.
Mehr RAM → mehr Heap → weniger Circuit-Breaker-Risiko → mehr Stabilität.
Ab 12–16 GB RAM läuft der Indexer deutlich entspannter.
Wenn das System stark wächst (viele Agents, viele Alerts):
Ein zusätzlicher Indexer-Node kann sinnvoll sein
→ Last wird verteilt
→ Heap-Druck sinkt
→ Cluster wird hochverfügbar
Wazuh-Doku dazu:
„Adding Wazuh indexer nodes“
Wann reicht Heap-Tuning aus – wann braucht man mehr Nodes?
| Situation | Lösung |
|---|---|
| Ab und zu Circuit-Breaker-Fehler | Heap erhöhen |
| Dauerhaft 75–90 % Heap-Auslastung | RAM erhöhen |
| Viele große Queries, Dashboards, hohe Last | zusätzlichen Indexer hinzufügen |
| Cluster hat nur 1 Node | dringend skalieren (sonst Single-Point-of-Failure) |
Bonus-Tipp: Heap-Druck reduzieren ohne RAM-Upgrade
- Alte Indizes mit ILM löschen oder verkleinern
- Mappings prüfen:
- Keine großen Textfelder aggregieren
fielddatavermeiden
- Dashboards optimieren (keine Full-Table-Scans)
- Index-Shards reduzieren, falls zu viele vorhanden sind
- Node-Rollen prüfen (kein unnötiger Overload)
Fazit
Der Fehler:
circuit_breaking_exception – Data too large
ist ein klarer Hinweis darauf, dass der Indexer zu wenig Heap hat, um seine Arbeit auszuführen.
Das Problem konnte in diesem Fall einfach gelöst werden:
- Heap von ~3 GB → 4 GB
- System neu starten
- Optional: RAM des Servers erhöhen oder Cluster skalieren
Damit läuft der Wazuh-Indexer wieder stabil und performant.
https://wazuh.slack.com/archives/C0A933R8E/p1764655540146089