Gezieltes Archive-Logging in Wazuh: Warum selektive logall-/archives-Filter dringend fehlen – und welche Workarounds es heute gibt


Einleitung

Archive-Logging (logall / logall_json) gehört zu den mächtigsten, aber zugleich riskantesten Funktionen im Wazuh-Manager. Es ermöglicht vollständige Transparenz über alle verarbeiteten Events – inklusive jener, die keine Alerts erzeugen. Genau diese Eigenschaft macht Archive-Logs für Debugging, Troubleshooting und Regelentwicklung unverzichtbar. In produktiven Umgebungen mit hohem Eventdurchsatz kann das globale Aktivieren von Archives jedoch schnell zum operativen Risiko werden.


Ausgangslage / Problemstellung

In realen SOC-Szenarien wird archives.json typischerweise temporär aktiviert, um Probleme zu analysieren, etwa:

  • Warum ein bestimmter Agent keine Alerts erzeugt
  • Warum ein Decoder oder eine Regel nicht greift
  • Welche Rohdaten tatsächlich beim Manager ankommen

Das Problem dabei:

  • logall_json=yes wirkt global auf alle Agents
  • Disk-I/O steigt sprunghaft an
  • Storage kann sich in kurzer Zeit füllen
  • Bei hoher IOPS-Last drohen Event-Drops oder verzögerte Verarbeitung
  • Wird das Feature zu spät wieder deaktiviert, entsteht ein Produktionsproblem

In vielen Fällen benötigt man Archive-Logs nur für einen oder wenige Agents, nicht für das gesamte Environment.


Technische Analyse

Wie Archive-Logging heute funktioniert

  • logall schreibt alle Roh-Events nach archives.log
  • logall_json schreibt alle Events strukturiert nach archives.json
  • Die Entscheidung erfolgt sehr früh im Wazuh-Pipeline-Flow, noch vor Regeln und Alerts
  • Es existiert aktuell keine Filtermöglichkeit:
    • nicht nach Agent-ID
    • nicht nach Gruppe
    • nicht nach Decoder
    • nicht nach Quelle

Das bedeutet: Sobald aktiviert, werden alle Events aller Agents persistiert.

Operative Nebenwirkungen

In Umgebungen mit hunderten oder tausenden Agents führt das zu:

  • massiv erhöhter Schreiblast auf dem Manager
  • schnellem Wachstum von /var/ossec/logs/archives*
  • erhöhter CPU-Last durch JSON-Serialisierung
  • zusätzlicher Belastung für Backup- und Logrotate-Mechanismen

Gerade in Clustern mit Shared Storage oder begrenzten IOPS ist das ein reales Stabilitätsrisiko.


Lösungsansätze / Best Practices (Stand heute)

1) Wunschfunktion: selektives Archive-Logging nach Agent-ID

Die vorgeschlagene Erweiterung ist konzeptionell einfach, aber hochwirksam:

<global>
  <logall_json>yes</logall_json>
  <logall_ids>017,021,033,127</logall_ids>
</global>

Effekt:

  • Nur Events der angegebenen Agent-IDs werden in archives.json geschrieben
  • Debugging wird gezielt möglich
  • Disk- und IOPS-Last sinkt drastisch
  • Produktivbetrieb bleibt stabil

Diese Funktion existiert aktuell nicht, wurde aber als offizieller Feature Request eingereicht.


2) Aktuelle Workarounds (mit Einschränkungen)

Custom Rules sind kein Ersatz für Archive-Logging

Zwar lassen sich Regeln schreiben, die nur für bestimmte Agent-IDs Alerts erzeugen, aber:

  • Rules greifen nach der Archive-Phase
  • Nicht-Alert-Events landen trotzdem nicht in archives.json
  • Für Decoder- und Parsing-Debugging sind Rules ungeeignet

Indexer-Seite hilft hier ebenfalls nicht

  • Archive-Logs entstehen vor Filebeat und Indexer
  • Ingest Pipelines oder Index-Routing können Archive-Logging nicht beeinflussen
  • Das Problem ist rein Manager-seitig

Pragmatische Notlösung

  • Archive-Logging nur kurzzeitig aktivieren
  • Agent-Gruppen temporär deaktivieren
  • Separate Test-Manager oder isolierte Testumgebungen nutzen

All diese Maßnahmen erhöhen jedoch operativen Aufwand und Risiko.


Lessons Learned / Best Practices

  • Archive-Logging ist ein Diagnosewerkzeug, kein Dauerzustand
  • In größeren Umgebungen ist globales logall_json faktisch nicht skalierbar
  • Debugging-Anforderungen sind meist agent-spezifisch, nicht global
  • Eine fehlende Filtermöglichkeit zwingt Administratoren zu riskanten Workarounds
  • Selektives Logging würde Wazuh in Enterprise-Szenarien deutlich robuster machen

Fazit

Die Möglichkeit, Archive-Logs gezielt auf einzelne Agents zu beschränken, wäre eine kleine Erweiterung mit großem operativem Nutzen. Sie würde das Risiko von Disk-Exhaustion und Performance-Einbrüchen drastisch reduzieren und gleichzeitig das Debugging in produktiven Umgebungen deutlich erleichtern. Bis eine solche Funktion verfügbar ist, bleibt Archive-Logging ein mächtiges, aber gefährliches Werkzeug, das nur mit äußerster Vorsicht eingesetzt werden sollte.


Mehr zu Wazuh …
https://wazuh.com/?utm_source=ambassadors&utm_medium=referral&utm_campaign=ambassadors+program

Mehr zum Wazuh Ambassador Program …
https://wazuh.com/ambassadors-program/?utm_source=ambassadors&utm_medium=referral&utm_campaign=ambassadors+program

https://wazuh.slack.com/archives/C0A933R8E/p1769537777479909