Zabbix
Enterprise-grade open-source monitoring solution
Zabbix is an enterprise-class monitoring solution for networks, servers, cloud, and applications with deep alerting. It targets organizations needing comprehensive infrastructure monitoring. It is deployed via Docker or native packages.
Key features
- Agent and agentless monitoring
- Powerful triggers and alerting
- Network discovery and maps
- Highly scalable
Pros & cons
Strengths
- Comprehensive and mature
- Scales to large estates
- Fully free
Trade-offs
- Steep learning curve
- Dated interface
Zabbix replaces
Last reviewed Sep 13, 2026 · 912 words
Zabbix beats a Prometheus and Grafana stack when the things you monitor are not all Linux boxes running exporters. Switches over SNMP, a UPS, a Windows server, an ESXi or Proxmox host, a NAS with an IPMI card, an HTTP endpoint and 40 Linux VMs: Zabbix has a template for each, an agent for the ones that need one, discovery to find the rest, and alerting that escalates to a person, all in one product that has been shipping since 2001. Below about 10 hosts of one kind, it is too much product; above that, and especially in a mixed estate, it is the most complete AGPL-3.0 monitoring system you can run without paying anyone.
Four containers, one database
The official images split Zabbix into server, web frontend, database and agent. A working compose on PostgreSQL:
services:
db:
image: postgres:16
environment:
- POSTGRES_USER=zabbix
- POSTGRES_PASSWORD=change-me
- POSTGRES_DB=zabbix
volumes:
- ./pg:/var/lib/postgresql/data
server:
image: zabbix/zabbix-server-pgsql:alpine-latest
environment:
- DB_SERVER_HOST=db
- POSTGRES_USER=zabbix
- POSTGRES_PASSWORD=change-me
ports:
- "10051:10051"
depends_on: [db]
web:
image: zabbix/zabbix-web-nginx-pgsql:alpine-latest
environment:
- DB_SERVER_HOST=db
- POSTGRES_USER=zabbix
- POSTGRES_PASSWORD=change-me
- ZBX_SERVER_HOST=server
- PHP_TZ=Europe/London
ports:
- "8080:8080"
depends_on: [server]
agent:
image: zabbix/zabbix-agent2:alpine-latest
environment:
- ZBX_HOSTNAME=zabbix-host
- ZBX_SERVER_HOST=server
depends_on: [server]
Port 10051 is where agents report in; 10050 is where the server polls agents. The default web login is Admin with password zabbix, capital A, and the first thing to do after signing in is change it, because every scanner on the internet knows it. Budget 1 GB of RAM for a small install and expect the database to be the component that grows. Zabbix supports TimescaleDB on top of PostgreSQL for history compression, and at more than 50 hosts with 1-minute polling I would turn it on from the start rather than migrate later.
Templates are the product
A template bundles items (what to collect), triggers (when to alert), graphs, dashboards and discovery rules. Linking "Linux by Zabbix agent" to a host gets you CPU, memory, disks, filesystems, network interfaces and a set of sensible triggers with no further work; there are official templates for PostgreSQL, MySQL, nginx, Docker, Proxmox, VMware, Windows, and hundreds of SNMP devices from Cisco, MikroTik, Ubiquiti, APC, Synology and more. Low-level discovery is the mechanism that makes this scale: one rule finds every disk or interface on a host and creates the items for each, so a new VLAN on a switch shows up without anyone editing anything. The learning curve people complain about is real but it is mostly this vocabulary: item, trigger, template, host group, action, media type. Learn those 6 words and the rest of the UI makes sense.
Agent, agentless, or both
Zabbix Agent 2 is a Go binary for Linux, Windows and BSD that collects local metrics and can run custom scripts and plugins. Agentless options cover SNMP v2 and v3, IPMI, SSH and Telnet checks, simple ICMP and TCP checks, HTTP checks with JSON path extraction, and JMX through a gateway. The practical split: agents on things you administer, SNMP on things you do not, HTTP checks for services that expose a status page. Network discovery can sweep a subnet, match what it finds against rules and auto-register hosts with the right template, which is the feature that keeps a growing lab honest.
Alerting that reaches a person
Triggers have severities from Information to Disaster and support dependencies, so a dead switch raises one alert rather than 30 unreachable hosts. Actions route problems to media types (email, Telegram, Slack, Discord, Mattermost, PagerDuty, Opsgenie, generic webhook, a script) with escalation steps: notify the on-call at minute 0, the team at minute 30, run a remote command at minute 60. Maintenance windows suppress alerts for a host or group on a schedule. This is the part of Zabbix that Prometheus users rebuild by hand in Alertmanager and a pile of YAML, and it is the strongest argument for the product.
Where it loses
The web interface is functional and dated; dashboards improved substantially in the 6.x and 7.x line but Grafana is still nicer to look at, and many Zabbix shops run Grafana on top with the Zabbix data source plugin. The data model is host-centric, so Kubernetes and ephemeral containers fit awkwardly; Prometheus is the right tool there, and the two coexist happily. For a 5-container homelab that wants "is it up" and a pretty graph, Uptime Kuma and Netdata get you there in 10 minutes, as the homelab monitoring guide walks through. Zabbix is a commitment: a day to learn, a weekend to template your estate, and a database to look after. Its 6,338 stars badly understate its install base, which sits mostly in organisations that never open GitHub.
What I'd do
Under 10 hosts of the same kind: Uptime Kuma plus Netdata, or Prometheus and Grafana if you like exporters. Over that, or any mix of switches, hypervisors, Windows and Linux: Zabbix on PostgreSQL with TimescaleDB, Agent 2 on everything you own, SNMP templates for everything you do not, and Grafana in front if the built-in dashboards annoy you. Change the Admin password before you do anything else, set up trigger dependencies for your core switch in the first week, and let discovery do the rest.
Compare Zabbix
23 head-to-head comparisons.
- Zabbix vs Netdata
- Zabbix vs Grafana
- Zabbix vs Prometheus
- Zabbix vs Glances
- Zabbix vs InfluxDB
- Zabbix vs Apache SkyWalking
- Zabbix vs Kibana
- Zabbix vs cAdvisor
- Zabbix vs VictoriaMetrics
- Zabbix vs Thanos
- Zabbix vs HyperDX
- Zabbix vs Coroot
- Zabbix vs Hertzbeat
- Zabbix vs Pulse Monitor
- Zabbix vs Graphite
- Zabbix vs Cortex
- Zabbix vs Grafana Mimir
- Zabbix vs LibreNMS
- Zabbix vs Monitoror
- Zabbix vs Uptrace
- Zabbix vs Pushgateway
- Zabbix vs Robusta
- Zabbix vs Checkmk
Similar monitoring & status apps
Uptime Kuma
Monitoring & StatusEasy self-hosted uptime monitoring tool
Replaces Pingdom, UptimeRobot
Netdata
Monitoring & StatusReal-time per-second infrastructure monitoring
Replaces Datadog, New Relic
Grafana
Monitoring & StatusOpen observability dashboards and visualization
Replaces Datadog
Prometheus
Monitoring & StatusMetrics-based monitoring and alerting toolkit
Replaces Datadog
Glances
Monitoring & StatusCross-platform system monitoring at a glance
Replaces Datadog
InfluxDB
Monitoring & StatusPurpose-built time series database for metrics and events
Replaces Datadog, AWS Timestream