Zabbix
Open-source network and infrastructure monitoring software
From Wikipedia, the free encyclopedia
Zabbix is an open-source monitoring platform for networks, servers, virtual machines, and cloud services. It collects metrics via SNMP, IPMI, JMX, and custom agents, then stores the data in a relational database and provides alerting, visualization, and reporting through a web-based frontend.[6]
| Zabbix | |
|---|---|
Zabbix 7.0 LTS dashboard | |
| Developer | Zabbix LLC |
| Initial release | April 2001 |
| Stable release | |
| Written in | C (server, proxy, agent), Go (agent2), PHP (frontend), Java (gateway)[4] |
| Operating system | Linux, FreeBSD, macOS, Windows (agent only) |
| Type | Network management system |
| License | AGPLv3 (7.0+); earlier versions GPLv2[5] |
| Website | www |
| Repository | github |
Alexei Vladishev created Zabbix in 2001 and released the first stable version (1.0) in 2004. The project is developed by Zabbix LLC (SIA Zabbix), based in Riga, Latvia.[5] The server and agent are written in C, a newer agent (agent2) in Go, the web frontend in PHP, and a Java gateway handles JMX monitoring.[4] Beginning with version 7.0 (June 2024), Zabbix is licensed under the AGPLv3; earlier versions used the GPLv2.[5]
History
Vladishev started Zabbix in 2001 as an internal monitoring tool. The first public stable release, version 1.0, appeared in 2004. Version 1.1 followed later that year; subsequent development adopted a convention of odd numbers for development branches and even numbers for stable releases, so 1.3 was the development branch that became 1.4.[4]
Version 1.8 (December 2009) added auto-discovery and auto-registration of hosts. Version 2.0 (May 2012) introduced a screen-based dashboard system and improved template inheritance. Version 3.0 (February 2016), the first long-term support (LTS) release, added encryption for agent-server communication and predictive trigger functions.[7]
Version 4.0 (October 2018) introduced the Zabbix agent2 written in Go, with concurrent check execution and a plugin architecture. Version 5.0 LTS (May 2020) added a monitoring proxy for distributed environments and a redesigned SAML authentication system. Version 6.0 LTS (February 2022) added high-availability clustering for the Zabbix server, Kubernetes monitoring, and a machine-learning-based anomaly detection function.[7]
Version 7.0 LTS (June 2024) changed the license from GPLv2 to AGPLv3 and added browser-based synthetic monitoring, an improved API, and a new proxy load-balancing mode.[5]
Architecture
Server and proxies
The Zabbix server collects data from agents and other sources, evaluates trigger conditions, sends alerts, and stores data in a relational database. Supported databases include PostgreSQL, MySQL/MariaDB, Oracle, and TimescaleDB (as a PostgreSQL extension for time-series optimization). For distributed monitoring, Zabbix proxies collect data at remote sites and forward it to the central server, reducing bandwidth and providing local buffering if the connection is interrupted.[7]
Agents
The original Zabbix agent (written in C) runs on Linux, Unix, Windows, and macOS, collecting system metrics such as CPU, memory, disk, and network statistics. Agent2 (written in Go) supports the same platforms and adds a plugin system for extending data collection to databases, message queues, and cloud APIs without writing external scripts.[4]
Data collection methods
Zabbix supports multiple data collection protocols:
- SNMP polling and traps for network equipment
- IPMI for hardware health monitoring (temperature, fan speed, power)
- JMX via the Java gateway for JVM metrics
- HTTP/HTTPS for web scenario monitoring and REST API polling
- SSH and Telnet for agentless checks on remote systems
- Calculated and aggregated items for derived metrics[7]
Templates and low-level discovery
Zabbix uses templates to define sets of items, triggers, graphs, and discovery rules that can be applied to hosts. Low-level discovery (LLD) automatically detects and monitors new resources such as network interfaces, file systems, or database instances without manual configuration.[7]
Frontend and API
The web frontend, written in PHP, provides dashboards, maps, screens, and reports. A JSON-RPC API allows programmatic access to all Zabbix objects for automation and integration with external systems.[8]
Adoption
Zabbix is used in financial, telecommunications, and government environments. The Bank of China uses Zabbix with a TiDB scale-out database to monitor its infrastructure.[9] Zabbix LLC holds an annual Zabbix Summit conference and maintains a network of certified partners and training centers.[7]
Early comparisons described Zabbix as simpler to set up than Nagios due to its template-based configuration.[10][11] Later reviews noted that large deployments require significant manual configuration of triggers and thresholds.[8]