In modern enterprise cybersecurity, the defensive perimeter is under relentless automated assault. From credential-stuffing bots and zero-day remote code execution exploits to lateral movement by sophisticated ransomware cartels, security operations center (SOC) analysts cannot defend infrastructure with disjointed firewall logs and manual grep scripts. Commercial enterprise SIEM platforms—such as Splunk, Datadog, or Microsoft Sentinel—charge extortionate data ingestion tolls ($2.50 to $5.00+ per gigabyte per day). For an enterprise generating 50GB of daily log telemetry across firewalls, Linux servers, Windows Active Directory domain controllers, and cloud VPCs, commercial SIEM licensing rapidly escalates past $60,000 to $100,000 annually. Entering 2026, the gold-standard open-source defensive antidote is Wazuh SIEM.
What Is the Architecture of an Enterprise Wazuh SIEM Cluster?
An enterprise Wazuh deployment separates ingestion, analysis, and indexing across three clustered tiers: a multi-node Wazuh Indexer cluster (OpenSearch-based distributed storage), a multi-node Wazuh Server cluster (log decoders, correlation rules, vulnerability detection, and active response), and a Wazuh Dashboard. By integrating Suricata IDS EVE.json network streams, CrowdSec threat intelligence, and Wazuh host-based agent telemetry, organizations achieve comprehensive XDR/SIEM capabilities with zero data ingestion licensing fees.
The core technological power of Wazuh lies in its unified XDR (Extended Detection and Response) and SIEM architecture. Unlike legacy SIEMs that merely collect passive log files, Wazuh deploys lightweight endpoint agents across Linux, Windows, macOS, and container hosts. The Wazuh agent performs continuous File Integrity Monitoring (FIM), monitoring cryptographic SHA-256 hashes of critical system binaries (/etc/passwd, C:\Windows\System32); executes Security Configuration Assessment (SCA) against CIS Benchmarks; audits kernel syscalls via auditd; and runs real-time Vulnerability Detection by cross-referencing installed package versions against NIST National Vulnerability Database (NVD) CVE feeds.
The Clustered Topology: Sizing Indexers, Managers, and Storage
Operating Wazuh in production requires moving past the single-node “all-in-one” OVA image. A single-node deployment will suffer disk I/O bottlenecks and crash under sudden log surges. A resilient, scalable enterprise SOC requires a multi-node distributed architecture:
| Cluster Tier | Recommended Node Architecture | Primary Computational Function | Sizing & Storage Guidance |
|---|---|---|---|
| Wazuh Indexer Cluster | 3x Dedicated Nodes (OpenSearch engine) | Distributed JSON index storage & full-text search | 16GB RAM (8GB JVM heap) + NVMe RAID 10 storage per node. |
| Wazuh Server Cluster | 2x Master/Worker Managers behind HAProxy | Log decoding, rule evaluation, FIM, Active Response | 8 vCPU + 16GB RAM per manager; stateless processing. |
| Wazuh Dashboard | 1x or 2x Nodes (Kibana / OpenSearch UI) | SOC visualization, threat graphs, alert investigation | 4 vCPU + 8GB RAM; TLS client certificate auth to indexer. |
| Load Balancer Tier | HAProxy with Keepalived / CARP VIP | Agent registration (1515/TCP) & event ingest (1514/TCP) | Distributes thousands of endpoint agents across managers. |
Suricata EVE.json and CrowdSec Ingestion Pipelines
A host-based agent cannot see what is happening across the physical wire between unmanaged switches or IoT hardware. To build an impenetrable SOC, you must feed network-level intrusion detection and collaborative threat intelligence directly into Wazuh:
1. Suricata Network IDS Integration
Deploy Suricata on your perimeter firewalls (such as OPNsense or dedicated network TAP sensors). Configure Suricata to output its unified log in EVE.json format. On the firewall, install the Wazuh agent and point its log collector to the EVE stream:
<localfile> <log_format>json</log_format> <location>/var/log/suricata/eve.json</location> </localfile>
Wazuh’s native Suricata decoder ingests EVE JSON events in real time. If Suricata detects an EternalBlue exploit probe, a Cobalt Strike beaconing pattern, or a DNS tunneling query, Wazuh correlates the network event with the target host’s internal process tree, giving analysts complete end-to-end attack visibility.
2. CrowdSec Collaborative Threat Intelligence Integration
CrowdSec uses real-time crowd-sourced IP reputation to block brute-force attackers across the globe. By forwarding CrowdSec alert decisions directly to Wazuh via Syslog or JSON webhooks, Wazuh can correlate repeated perimeter blocks against internal Active Directory logon attempts, instantly identifying credential-stuffing campaigns before an account is compromised.
Custom Decoder & Rule Engineering: Parsing Custom Microservices
While Wazuh ships with hundreds of pre-built decoders for standard enterprise applications (Nginx, Apache, Postfix, OpenSSH, Auditd), modern microservice architectures generate proprietary JSON and unstructured log outputs that out-of-the-box SIEM rules cannot understand. If an unparsed log message arrives at the Wazuh manager, it is logged under generic Rule 1002 (Unknown problem) or dropped entirely, blinding analysts to internal application-layer attacks.
Wazuh solves this through its hierarchical two-phase XML decoding engine:
- Phase 1: Sibling Decoders (Regex Extraction): In
/var/ossec/etc/decoders/local_decoder.xml, you define parent and child decoders using regular expressions or POSIX patterns. For JSON logs, Wazuh’s nativejsondecoder parses key-value pairs automatically, populating internal data fields (e.g.,data.userId,data.clientIp,data.action). - Phase 2: Custom Correlation Rules: In
/var/ossec/etc/rules/local_rules.xml, you construct detection logic mapped directly to the MITRE ATT&CK framework. For example, you can write a high-severity rule detecting credential stuffing on an internal authentication API:<rule id="100050" level="10" frequency="8" timeframe="60"> <if_matched_sid>100049</if_matched_sid> <same_source_ip /> <description>Potential Brute-Force Authentication Attempt on Internal Auth API</description> <mitre> <id>T1110.001</id> </mitre> <group>authentication_failed,pci_dss_10.2.4,</group> </rule>
Integrating Windows Sysmon: Deep Endpoint Visibility via MITRE ATT&CK
Standard Windows Event Logs (Security.evtx) provide coarse visibility into logins and service creation, but fail to capture advanced living-off-the-land binaries (LOLBins) used by ransomware operators (e.g., PowerShell downloading payloads into memory or Certutil encoding base64 files).
Deploying Microsoft Sysmon (System Monitor) with an optimized modular configuration (such as SwiftOnSecurity’s Sysmon config) transforms the Windows Wazuh agent into an enterprise-grade forensic sensor:
- Sysmon Event ID 1 (Process Creation): Captures full parent-child process lineages, executing command lines, and SHA-256 hashes of every spawned executable. Wazuh flags suspicious child processes (e.g., Microsoft Word launching
cmd.exeorpowershell.exe). - Sysmon Event ID 3 (Network Connections): Records TCP/UDP connections initiated by local processes. If an unmanaged binary in
AppData\Local\Tempinitiates an outbound socket to an external IP, Wazuh alerts immediately. - Sysmon Event ID 8 (CreateRemoteThread): Detects process injection and DLL injection techniques commonly utilized by Cobalt Strike beacons and Mimikatz credential-dumping tools to hide inside legitimate Windows processes like
lsass.exeorexplorer.exe.
Automated Agent Enrollment: Provisioning via Ansible & Pre-Shared Keys
In dynamic cloud environments where Kubernetes nodes, autoscaling groups, and virtual machines spawn and terminate continuously, registering agents manually via the CLI is an impossible bottleneck.
Wazuh provides automated cryptographic agent registration via the Authd service (port 1515/TCP). Using an Ansible playbook or cloud-init script, new servers enroll automatically upon boot:
WAZUH_MANAGER='10.10.100.10' WAZUH_AGENT_GROUP='linux-webservers' WAZUH_REGISTRATION_PASSWORD='SuperSecretVaultPassword' dpkg -i wazuh-agent_4.9.0-1_amd64.deb systemctl enable --now wazuh-agent
The manager validates the registration password, assigns a unique Agent ID, generates a 128-bit Blowfish cryptographic pre-shared key, and assigns the agent to its specific group. The agent immediately downloads its group-specific configuration files (containing FIM audit directories and CIS benchmark policies) from the manager cluster, achieving full operational compliance in under 15 seconds without administrative intervention.
HAProxy Load Balancing Architecture for High-Concurrency Ingestion
When scaling a Wazuh cluster past several hundred endpoint agents, pointing agents directly to a single Wazuh Manager creates an acute single point of failure and causes network buffer overruns during log spikes. To distribute incoming agent traffic evenly across your manager nodes, deploy an HAProxy load balancer cluster running in Layer 4 TCP proxy mode:
frontend wazuh_agent_registration
bind 0.0.0.0:1515
mode tcp
default_backend wazuh_managers_authd
backend wazuh_managers_authd
mode tcp
balance roundrobin
server wazuh-master 10.10.100.10:1515 check
server wazuh-worker 10.10.100.11:1515 check backup
frontend wazuh_agent_events
bind 0.0.0.0:1514
mode tcp
default_backend wazuh_managers_events
backend wazuh_managers_events
mode tcp
balance leastconn
server wazuh-master 10.10.100.10:1514 check
server wazuh-worker 10.10.100.11:1514 check
Notice the critical distinction in load balancing algorithms:
- Agent Registration (Port 1515/TCP): Configured with
server wazuh-worker backup. Agent registration must be handled by the Cluster Master node to avoid concurrent database writes to the central client keystore. The worker node acts only as a failover backup if the master is down. - Event Ingestion (Port 1514/TCP): Configured with
balance leastconn(least connections). Event processing is completely stateless; incoming encrypted logs from thousands of endpoints are evenly distributed across all available manager nodes, ensuring zero event drops even during enterprise-wide security incidents.
Active Response: Automated Real-Time Threat Remediation
The fatal flaw of traditional SIEMs is alert fatigue: generating thousands of dashboard alerts while human analysts sleep. Wazuh Active Response transforms passive monitoring into automated containment. When a high-severity alert triggers (Rule Level 10+), Wazuh Server instructs the endpoint agent to execute immediate remediation scripts:
- Automated Host Isolation: If an endpoint exhibits signs of ransomware (e.g., FIM detects 50+ files encrypted in 5 seconds or a Cobalt Strike process spawns in memory), Active Response automatically drops all network interfaces except the Wazuh management port, quarantining the compromised machine before ransomware can propagate across SMB shares.
- Dynamic IP Blocking: If an external IP triggers multiple SSH or web brute-force rules within 60 seconds, Active Response executes an
nftablesoriptablesdrop rule, banning the offending IP for 24 hours at the OS level. - Active Directory Account Disabling: On Windows Domain Controllers, an active response script can automatically disable a compromised user account the instant impossible-travel or golden-ticket activity is confirmed.
Index Lifecycle Management (ILM) & Storage Retention Math
The single most common operational failure in Wazuh deployments is disk exhaustion on the Indexer cluster. If an enterprise ingests 20 million events per day without retention policies, the OpenSearch index will devour terabytes of NVMe storage within months, eventually causing OpenSearch to hit its 95% disk watermark and lock all indices into read-only mode.
To ensure lifelong operational stability, implement an automated Index State Management (ISM) policy:
- Hot Tier (Days 1–14): Daily indices remain on fast NVMe storage, fully searchable with high replica counts (1 primary, 1 replica) for instant sub-second analyst queries.
- Warm Tier (Days 15–60): Indices transition to read-only; replicas are reduced to 0; indices are force-merged down to 1 segment per shard to reclaim up to 40% of disk space.
- Cold / Snapshot Tier (Days 61–365): Automated snapshots are taken and pushed to low-cost S3 object storage (or local MinIO/Ceph clusters) for compliance archiving. The local indices are purged completely from the fast indexer disks.
Wazuh Agent Resource Throttling: Guarding Production Host Workloads
A legitimate concern for systems engineers deploying host agents to production database servers or high-frequency trading instances is the risk of an agent consuming excessive CPU cycles or saturating network interfaces during deep scans. Wazuh provides robust hardware governance throttles directly inside the agent configuration (ossec.conf):
- FIM Database Throttling: Set
<max_eps>100</max_eps>(Events Per Second) to cap the maximum event transmission rate, preventing network link saturation during massive batch file writes. - Process Priority & CPU Limits: In
/var/ossec/etc/internal_options.conf, administrators can configure process niceness (e.g.,wazuh_modules.cpu_priority=10) and restrict File Integrity Monitoring file reads to a maximum of 50 files per second. This guarantees that file hashing occurs silently in the background, keeping total agent CPU utilization strictly below 1.5% to 2.0% even during aggressive security audits.
Systems Checklist: Enterprise Wazuh SOC Commissioning Protocol
- Generate TLS Certificates: Use the official
wazuh-certs-tool.shto generate a dedicated root CA and issue unique cryptographic TLS certificates for every indexer node, manager node, and dashboard server. Never disable TLS verification. - Bootstrap 3-Node Indexer Cluster: Deploy three indexer nodes on separate physical hosts. Initialize the cluster using
wazuh-indexer-perform-cluster-check.sh, verifying green health status across all shards. - Configure Multi-Manager Clustering: Designate Manager 1 as Cluster Master and Manager 2 as Worker. Enable
wazuh-clusterdso that decoders, custom rules, and agent registration keys synchronize continuously between managers over port 1516/TCP. - Deploy Agents via Automation: Distribute the Wazuh agent across your fleet using Ansible or Puppet. Deploy with custom groups (e.g.,
linux-servers,web-dmz,windows-domain-controllers) to automatically apply targeted SCA compliance policies and audit rules.
Frequently Asked Questions About Wazuh SIEM Clusters
Can Wazuh replace a commercial EDR like CrowdStrike or SentinelOne?
Wazuh provides robust XDR capabilities: file integrity monitoring, vulnerability auditing, anomaly detection, and automated active response. However, commercial EDRs include proprietary cloud sandboxes and kernel-level behavioural prevention drivers. Many organizations deploy Wazuh alongside commercial tools to avoid per-GB ingestion fees while keeping full data sovereignty.
How many agents can a single Wazuh Manager cluster support?
A 2-node Wazuh Manager cluster behind an HAProxy load balancer comfortably supports 5,000 to 10,000 active endpoint agents, provided the backend Wazuh Indexer cluster has adequate NVMe write IOPS.
Is Wazuh completely free and open source?
Yes. Wazuh is 100% free and open-source software under the GPLv2 and Apache 2.0 licenses. There are zero licensing fees, zero agent counts caps, and zero data ingestion volume restrictions.
Open-Source SIEM & Enterprise Threat Hunting
Cluster indexing integrates seamlessly with complete enterprise network security monitoring. Compare leading open-source SOC architectures in our breakdown on Security Onion vs Wazuh: Enterprise SIEM & SOC Guide.
Precision threat detection logic executes across distributed analytical nodes. Review multi-node indexer clustering in our deep dive on Wazuh SIEM Rules: Custom Decoders & Alert Tuning.

