Request an exact quote
Cybersecurity · SIEM & log analytics migration path

From IBM QRadar SIEM to Wazuh

Replacing an appliance-based, events-per-second-licensed SIEM with self-hosted Wazuh: translating DSMs into decoders, AQL rules into rule sets, reference sets into CDB lists, and handling the flow-analytics capability QRadar has and Wazuh does not.

Effort
High
Est. timeline
~18 wks
Wazuh model
Free (self-hosted)
Open source
Yes
▶ Model your savings in the interactive calculator

QRadar’s licensing model is the reason most teams start looking. Paying by events and flows per second means the verbose, security-relevant sources (endpoint telemetry, authentication logs, DNS) are exactly the ones that push you into the next tier, so the licence actively discourages the logging you should be doing. Add an appliance estate on a hardware refresh cycle and a support renewal on top, and the total is rarely what anyone budgeted. Wazuh replaces the log-analytics and correlation half of QRadar for the cost of the infrastructure. It does not replace the flow-analytics half, and that asymmetry should shape the entire project.

Split the platform in two before you plan anything

QRadar is really two products sharing a console. One ingests logs through DSMs, normalizes them into a common event taxonomy, and evaluates rules written in AQL. The other ingests NetFlow, IPFIX, and QFlow, builds a picture of who talked to whom, and detects on network behaviour.

Wazuh is a complete answer to the first half and no answer at all to the second. So the first planning task is to sort every detection you care about into one bucket or the other. Log-driven detections migrate to Wazuh. Flow-driven detections need Zeek, Suricata, or an assembled distribution such as Security Onion, running alongside and shipping into the same indexer so analysts still get one place to look.

Teams that skip this split discover it halfway through, usually when someone asks why lateral-movement detections went quiet. Do it on paper in week one.

The mapping

  • QRadar agents and syslog collection → Wazuh agents, syslog listener, or Filebeat.
  • DSMs and custom property extractions → Wazuh decoders (parent decoder on the log prefix, child decoders for fields).
  • The QRadar Identifier taxonomy → Wazuh rule groups and static field mappings, which are looser and less prescriptive.
  • AQL correlation rules → Wazuh rules, with frequency, timeframe, and same_source_ip-style options for stateful logic.
  • Building blocks → rule inheritance via if_sid and if_group.
  • Reference sets → CDB lists.
  • Offenses → alerts plus an external case platform (TheHive or equivalent); Wazuh has no offense-magnitude concept.
  • QFlow / NetFlow analytics → Zeek and Suricata, as a separate deployment.
  • QRadar Risk Manager and Vulnerability Manager → Greenbone or your existing scanner, feeding Wazuh’s vulnerability detector.

Offenses are the workflow you will miss

QRadar’s offense model is genuinely good and genuinely proprietary. Related events are grouped into a single offense, given a magnitude score that combines credibility, relevance, and severity, and then worked as one unit that accumulates evidence over time. Analysts triage a queue of offenses, not a firehose of alerts.

Wazuh has no equivalent. It produces alerts with severity levels. Aggregating those into something an analyst works as a case is your job, and it is the part of the migration most likely to be underestimated because it is workflow rather than technology. The standard open answer is TheHive for case management, with alerts flowing in from Wazuh and enrichment from Cortex analysers or MISP. Stand that up during the build phase, not after cutover, and get your analysts working in it while QRadar is still running so the muscle memory transfers before the safety net goes.

Also plan the magnitude question deliberately. Wazuh rule levels are a blunter instrument than QRadar’s three-factor scoring, so decide early whether you replicate prioritisation in the case platform, in rule-level discipline, or simply accept a coarser scale.

Rebuilding detection content without carrying the dead weight

Export your enabled rule list and, more importantly, your offense history. The rules that have generated offenses a human closed with a real disposition are your migration scope. Everything else is a candidate for deletion.

Then work through them in order of value. AQL rules translate to Wazuh rules conceptually rather than syntactically: the condition, the threshold, and the grouping key transfer, the language does not. Stateful rules (this event N times in M minutes from the same source) map onto Wazuh’s frequency, timeframe, and same_field options fairly directly. Rules that join across data sources at query time are harder and sometimes need restructuring into a chain of rules with an intermediate CDB list acting as state.

Test every rule against replayed production events. QRadar’s normalized taxonomy means your rules were written against clean, consistent fields; Wazuh rules fire against whatever your decoder produced, so a decoder bug and a rule bug look identical from the console. wazuh-logtest distinguishes them, and it should be the first thing every detection engineer learns.

Order of operations

  1. Sort detections into log-driven and flow-driven, and scope the flow replacement separately.
  2. Pull the offense history and use it to decide which rules migrate and which get retired.
  3. Build the Wazuh cluster, sized on daily indexed volume and hot retention, potentially on rebuilt QRadar appliance hardware.
  4. Port DSMs to decoders, one log source at a time, validating each against real production samples.
  5. Reimplement rules, then reference sets as CDB lists, then wire alerts into the case platform.
  6. Deploy Zeek and Suricata for the flow-driven coverage, feeding the same indexer.
  7. Parallel-run with both consoles live, comparing offenses against alerts daily and closing every discrepancy.
  8. Decommission event processors in waves, retiring the licence tier as EPS drops rather than all at once.

Clearing the bar before you cut over

Every migrated rule has fired correctly against replayed production data. Every decoder has been validated on live samples from that specific source. Flow-driven coverage exists in Zeek or Suricata and has been tested independently. Analysts have worked real cases in the new workflow while QRadar was still authoritative. Compliance and audit reports render with the evidence your last audit asked for. And the EPS reduction is documented, because that is the number that justified the project.

The short version

QRadar to Wazuh trades an EPS licence and an appliance refresh for a cluster you operate and a flow-analytics gap you fill separately. The log-analytics migration is well-understood work: DSMs become decoders, AQL becomes rules, reference sets become CDB lists. The two things that sink projects are assuming Wazuh covers network flows and assuming alerts are a substitute for the offense workflow. Plan both explicitly, use the calculator above for illustrative per-endpoint economics, and count the second open deployment and the case platform as part of the cost rather than extras.

Tooling & automation for this path

Map QRadar log sources and DSMs onto Wazuh decoders (custom DSMs become custom decoders); re-express AQL rules and building blocks as Wazuh rule sets; migrate reference sets to CDB lists; run both collectors in parallel and retire QRadar event processors once EPS-heavy sources are proven on Wazuh.

Primary references: official Wazuh documentation ↗ and the IBM QRadar SIEM documentation ↗ , always verify version-specific behavior against them before you migrate.

Frequently asked questions

What happens to QRadar's network flow analytics? Wazuh has no equivalent.

Correct, and this is the single most important gap to plan around. QRadar ingests NetFlow, IPFIX, and QFlow and correlates network behaviour alongside log events; Wazuh is a log and endpoint platform with no flow-analytics capability at all. If flow data drives detections you rely on, you need a second open component, typically Zeek or Suricata feeding into the same indexer, or Security Onion if you want that assembled for you. Budget it as a separate workstream, not a checkbox.

Do custom DSMs port to Wazuh?

No, but they translate more cleanly than most QRadar content because both systems are doing the same job: turning a vendor's log line into named fields. A custom DSM's property extractions become a Wazuh decoder, usually a parent decoder matching the log prefix and child decoders extracting fields. The regular expressions themselves often transfer with light editing. Budget a day per non-trivial DSM including testing, and use it as an opportunity to drop the ones feeding sources nobody queries.

How do reference sets and building blocks map?

Reference sets become CDB lists, the flat key-value files Wazuh rules test against with the `list` element, and the mapping is close enough to be mechanical. Building blocks are harder because they are reusable rule fragments composed into higher-level rules; Wazuh's equivalent is rule inheritance via `if_sid` and `if_group`. Expect to flatten some building-block hierarchies rather than reproduce them, and treat that as simplification rather than loss.

Does the QRadar SaaS sale to Palo Alto affect on-premise QRadar customers?

The 2024 transaction covered the QRadar SaaS assets, with IBM continuing to support on-premise customers and partnering on migration paths to Palo Alto's platform. For anyone running QRadar on-premise the practical effect is strategic rather than immediate: it is a clear signal about where long-term investment is going, which is precisely the kind of signal worth acting on at your own pace rather than under a vendor's migration timetable. Confirm your specific support position with IBM rather than relying on any summary, including this one.

Can we reuse the QRadar appliances?

Often yes, and it materially improves the business case. QRadar appliances are x86 servers, so once they are out of support or off licence they can be rebuilt as Wazuh indexer nodes if the disk and memory configuration suits. Check the storage layout first: event processors are typically built for sequential write throughput, which suits an indexer well, while console appliances may be under-specified for search workloads.

Model your 3-year cost

Pre-filled for IBM QRadar SIEM → Wazuh; adjust every figure with your own numbers. Estimates are illustrative, not vendor quotes, see our methodology.

Sized at 500 GB ingested/day, cost is computed on this.
Stay on IBM QRadar SIEM (3yr)
$2,250,000
Move to Wazuh (3yr + migration)
$132,000
Projected savings
$2,118,000 (94%)
Payback period
1.2 mo
Build a decision report from these numbers:

How this is licensed: Security is the category where the billing unit changes per segment: EDR/XDR bills per endpoint or per protected asset; SIEM bills by ingest volume (GB/day) or events per second; MDR, MSSP, and SOC-as-a-Service bill per endpoint or per asset for endpoint-centric services but per GB ingested for co-managed SIEM and SOC-as-a-Service; SOAR bills per analyst seat or per automation run; and vulnerability management bills per scanned asset. The calculator normalizes everything to protected endpoints so segments stay comparable; if you are modelling a SIEM or an ingest-priced SOC-as-a-Service specifically, treat one endpoint as roughly one asset generating logs and sanity-check the total against your GB/day contract.

Illustrative, editable figures, not vendor pricing (defaults reviewed May 2026).

Request a vendor-accurate Wazuh quote

A guided builder that turns your estimates into a requirements report (RFQ) you can send to a vendor, partner, or distributor for a binding quote, then feed the real prices back into the calculator above. How our estimates work.

  1. 1Size it
  2. 2Requirements
  3. 3Your details
  4. 4Channels & export

How big is your IBM QRadar SIEM estate?

Every device that needs the agent installed. Not sure? Enter rough numbers, the distributor confirms exact counts later.

1,000 endpoints
Default mid-size assumption (1,000 endpoints)