Wazuh Indexer „Circuit Breaking Exception“: Warum dein Cluster plötzlich stehenbleibt – und wie du es sauber behebst

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?

SituationLösung
Ab und zu Circuit-Breaker-FehlerHeap erhöhen
Dauerhaft 75–90 % Heap-AuslastungRAM erhöhen
Viele große Queries, Dashboards, hohe Lastzusätzlichen Indexer hinzufügen
Cluster hat nur 1 Nodedringend skalieren (sonst Single-Point-of-Failure)

Bonus-Tipp: Heap-Druck reduzieren ohne RAM-Upgrade

  1. Alte Indizes mit ILM löschen oder verkleinern
  2. Mappings prüfen:
    • Keine großen Textfelder aggregieren
    • fielddata vermeiden
  3. Dashboards optimieren (keine Full-Table-Scans)
  4. Index-Shards reduzieren, falls zu viele vorhanden sind
  5. 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

Mehr zu Wazuh …

Mehr zum Wazuh Ambassador Program …