Picture running both of these side by side on the same 90-host mixed estate — a mix of Linux VMs, a few Windows servers, a stack of access switches and two firewalls. Checkmk would typically be showing more services within the first day or two: its agent finds every filesystem, every NIC, every systemd unit and every NTP peer on its own. Zabbix takes longer to reach the same coverage, but its item-and-trigger model is what most teams end up building custom dashboards and triggers in, because it lets you ask exactly the questions you want. That tension — fast, opinionated discovery versus a flexible, database-centric toolkit — is the heart of this comparison.
At a glance
| Zabbix | Checkmk | |
|---|---|---|
| License | AGPLv3 (since 7.0), all features in the one edition | Raw edition GPLv2; commercial editions add features |
| Cost model | No license fee; optional paid support subscriptions | Raw has no fee; commercial editions licensed by number of services |
| Core engine | Own C server and pollers | Raw: Nagios core; commercial: Checkmk Micro Core (CMC) |
| Data storage | SQL database (MySQL/MariaDB, PostgreSQL, optional TimescaleDB) | RRD files per metric, fixed size |
| Discovery | Low-level discovery rules in templates | Automatic service discovery from agent/SNMP output |
| Configuration | Templates, items, triggers via web UI and API | Rule-based, folder/tag hierarchy, web UI and REST API |
| Agent | Zabbix agent / agent 2 (Go, plugins) | Checkmk agent; Agent Bakery in commercial editions |
| Distributed setup | Proxies (active/passive), proxy groups in 7.0 | Distributed sites, each a full instance |
| Dashboards | Built-in, fairly capable; Grafana plugin common | Built-in; richer in commercial editions |
| Upgrade path | Package upgrade, DB schema migrated on server start | omd update per site, version switch in place |
How they think about monitoring
Zabbix is a data collection platform with alerting on top. Everything is an item — a single time series with a key, an interval and a type. Triggers are expressions over those items. That makes it extremely flexible: you can alert on the 95th percentile of a metric compared to last week, or on a calculated item that sums traffic across 40 ports. The cost is that you build more yourself. The official templates are good, but a useful Linux setup still involves choosing templates, tuning macros and deciding which triggers deserve a notification.
Checkmk is a service monitor with metrics attached. The agent returns a big text blob; Checkmk’s check plugins parse it into services, each with a state and performance data. Service discovery turns “install agent, add host” into dozens of sensible checks with default thresholds in minutes. Changes are made through rules that match hosts by folder, tag or label, which scales beautifully for “all database hosts in Frankfurt get these thresholds”. The trade-off is that going off the beaten path — alerting on a derived calculation, for example — is harder than in Zabbix.
Storage and the operational load of the monitor itself
This is where the two feel most different after six months.
Zabbix writes every value into SQL tables. Growth is linear with NVPS and retention, and you have to plan housekeeping, partitioning or TimescaleDB from day one. Get it right and a single server handles thousands of values per second; get it wrong and the housekeeper becomes the heaviest process on the box. Our server sizing guide walks through the numbers.
Checkmk stores metrics in RRD files, which do not grow over time — a host’s disk footprint is fixed when its services are discovered. There is no database to tune, which removes an entire class of problems. The flip side: RRDs consolidate older data into coarser averages, so long-term raw history is not available, and ad-hoc queries across many hosts are limited compared with SQL.
Discovery, templates and time to first useful dashboard
For a mixed estate of Linux and Windows servers, Checkmk wins on speed. A single afternoon is typically enough to get meaningful monitoring across a 90-host estate, with thresholds on filesystems, memory and interfaces that are mostly sensible out of the box.
Reaching the same coverage in Zabbix typically takes a few days — mainly template selection, macro overrides for filesystem thresholds, and disabling noisy triggers. On network gear the gap was smaller: Zabbix’s SNMP templates with low-level discovery handle interface tables well, and Checkmk’s SNMP checks are equally thorough. If SNMP is your main workload, also look at our SNMPv3 setup guide.
Alerting and noise
Zabbix gives you fine control: recovery expressions for hysteresis, trigger dependencies, action conditions, escalation steps and maintenance with or without data collection. It lacks a native flapping state, which you have to model with trigger functions.
Checkmk inherits the Nagios-style soft/hard state logic and flap detection, and adds a rule-based notification engine that can route by host tag, service name, time period or contact group. Commercial editions add more notification methods and bulk notifications. Both can be tamed; the specific techniques are in our alert noise guide.
Licensing and what you pay for
Zabbix has no feature tiers: the same AGPLv3 code runs a 10-host lab or a 50,000-host enterprise. Zabbix LLC sells support subscriptions, consulting and training, which is how larger organizations usually engage.
Checkmk’s Raw edition is fully open source but deliberately limited in some areas — it uses the Nagios core instead of the faster CMC, and features such as the Agent Bakery (centrally built and auto-updated agents), some reporting and several integrations live in the commercial editions, which are priced by monitored services. Check Checkmk’s current edition comparison and pricing pages before planning, as the line between editions moves between releases.
Upgrades
Zabbix upgrades are package upgrades followed by an automatic database schema migration when the server starts. On large databases that migration can take a while, so snapshot first and read the upgrade notes — major versions sometimes change history table structures.
Checkmk’s OMD layout lets several versions sit side by side; omd update switches a site to the new version and merges configuration. It is one of the more pleasant upgrade experiences in this space, though custom check plugins may need porting when the plugin API changes between major versions.
Verdict
Pick Zabbix if:
- you want every feature without an edition question, at no license cost;
- your team is comfortable owning a SQL database and planning its growth;
- you need custom calculations, long raw history, or complex trigger logic;
- you already use Grafana or want to query metrics with SQL.
Pick Checkmk if:
- you want broad server coverage fast, with sensible defaults, and a small team to run it;
- rule-based configuration by folders and tags matches how you organize hosts;
- you would rather not run a monitoring database at all;
- you are open to a commercial edition later for the Agent Bakery and CMC performance.
Read the full Zabbix review and Checkmk review, or see the wider field in our open-source monitoring category.