Zabbix

Enterprise-grade open-source monitoring solution

Monitoring & Status ★ 6.4k stars Hard setup AGPL-3.0

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.

Similar monitoring & status apps