Open Source Project of the Month: Zabbix

It’s time again for another Project of the Month! December is a pretty busy month for most people, with holidays to plan/shop for, using up that remaining vacation time, and other end-of-year tasks. That’s why it’s particularly nice to leave monitoring your IT infrastructure (or your refrigerator!) to an automated system like Zabbix. One less thing to worry about!

Zabbix

This month we’ll take a look at the Zabbix Enterprise-class Open Source Monitoring System. Zabbix has years of history as a successful distributed monitoring system, and can be configured to keep tabs on just about anything. From disk space utilization to CPU load, to the temperature of your refrigerator, Zabbix can monitor it all. Being distributed, Zabbix can scale to monitor as much or as little as you want, even across multiple networks in multiple locations.
zabbix-screenshot
Zabbix consists of several pieces, which work together to form a full-featured monitoring system:

Zabbix Server

The Zabbix server is the heart of the system. It relies on an external relational database (usually PostgreSQL or MySQL) to store values from monitored items, and keeps an eye on the values to spot any triggers that should be activated. The server is responsible for polling agents and possibly discovering new agents automatically, as defined by the discovery rules. The server may also receive ad-hoc push updates from agents.

Zabbix Proxy

The proxy essentially performs the same functions as the server. Each server or proxy instance can have zero or more other Zabbix servers configured as children, and up to one Zabbix server configured as a parent, to facilitate highly-distributed, hierarchical monitoring. Proxies can be deployed on various LANs to aggregate monitoring data for the whole LAN and relay to a remote NOC, or in countless other configurations to reduce the load on the primary server.

Zabbix Agent

While the Zabbix server can monitor some items natively, such as SNMP targets, ICMP echo requests, and HTTP process flows, most item values are gathered by agent processes running on the systems being monitored. Zabbix provides agents for every platform listed in the Requirements section below. Each agent is fine-tuned to the platform it will run on, and abstracts OS-level support requirements away from the server or proxy processes.

The agent is lightweight to ensure minimal system disruption, and multithreaded to collect lots of data quickly when necessary.

Zabbix Web Frontend

The Zabbix web frontend is usually run on the same machine as the Zabbix server, but can be run separately if scaling is desired/required. The web frontend just requires access to the relational database storing Zabbix’s configuration. Most configuration is handled through the web frontend, and it is the de-facto monitoring implementation.

Third Party Frontends

There are numerous third-party frontends to Zabbix – from Android/iOS apps for your phones and tablets, to plugins which activate warning lights or sirens, depending on the severity of the alarms.

APIs to interface with Zabbix, with bindings to most scripting languages, are also available. Zabbix can be tailored to almost any set of needs!

Features/Benefits

(As stated by Zabbix.)

  • Zabbix offers the freedom of using an open-source solution with no vendor lock-in and freely accessible source code. This includes not only Zabbix itself, but also required components (Linux, Apache, MySQL/PostgreSQL, PHP)
  • Zabbix setup and configuration is quite easy ensuring a low learning curve and therefore low cost of ownership
  • Highly efficient Zabbix agents for UNIX and Windows (x32, x64, Itanium) based platforms provide wider monitoring capabilities with greater speed
  • A centralized monitoring system allows to store all information (configuration and performance data) in a relational database for easier processing and re-use of data
  • Rich visualization capabilities allow to work with your data faster and smarter
  • Built-in housekeeping procedures allow to keep your data well organized

Requirements

To run the Zabbix server or monitoring proxy, you’ll need one of the following platforms:

  • AIX
  • FreeBSD
  • HP-UX
  • Linux
  • Mac OS X
  • Open BSD
  • SCO Open Server
  • Solaris Supported
  • Tru64/OSF

In addition, Zabbix Agents are available for these platforms:

  • Novell Netware
  • Windows NT 4.0, Windows 2000, Windows Server 2003, Windows XP, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2012, Windows 8

Why It Wins

Zabbix wins this round of Project of the Month due to its

  • Incredible flexibility and easy extensibility
  • Wide acceptance and deployment, showcasing the value and power of Free/Open Source Software
  • Ability to let system administrators sleep a little more soundly at night ๐Ÿ™‚

If you’re still not sure Zabbix is the monitoring system for you, check out their introductory presentation, then give their prebuilt VM appliance a spin!