I am writing this second, but so be it. Scalability was just more interesting to write about.
What is Zabbix?
Free, enterprise quality monitoring software. Based on the Server / Agent model (with optional Proxy) it can either operate in Passive (connect to server) or Active (connect to agent) modes. It also has integration with SNMP, IPMI and JMX for legacy applications and where is not possible to use the agent.
Why Zabbix and how does it compare to Cacti or Nagios?
Zabbix includes all the features of Cacti and Nagios in one package, plus alot more. I am yet to see something I could do with Cacti that I am unable to do with Zabbix.
In addition to this what does Zabbix offer?
What options for extending Zabbix are there?
Once you get to play with it you will come to realize that almost anything can be done using external scripts as checks. The need to extend Zabbix (except where performance is needed) is rare. 2.1.x / 2.2.x includes a modular plugin architecture for defining custom checks. This could be used for example to check the full uptime of a minecraft server or getting the number of players for use in an item. This could easily be done with a script called (custom user parameter or system.run check) although it depends on your performance requirements.
I will cover the development modules later in this series I hope.
What is Zabbix?
Free, enterprise quality monitoring software. Based on the Server / Agent model (with optional Proxy) it can either operate in Passive (connect to server) or Active (connect to agent) modes. It also has integration with SNMP, IPMI and JMX for legacy applications and where is not possible to use the agent.
Why Zabbix and how does it compare to Cacti or Nagios?
Zabbix includes all the features of Cacti and Nagios in one package, plus alot more. I am yet to see something I could do with Cacti that I am unable to do with Zabbix.
In addition to this what does Zabbix offer?
- Auto Discovery (Low Level and Network) - You can define custom scripts to automatically setup hosts and items / triggers / graphs inside that host based on the output from scripts. No need to integrate with the API and manage hosts through software (although that is possible too).
- Web Checks - Through the execution of sequential steps perform browser actions and test your website. Useful features include extraction of content from the page into variables and validation of web page steps via regex.
- Interface - A VERY good interface
- Visualization - Can visualize any monitored item, no need to create a graph for once of queries
- API - Full API for interacting with the data stored in the MySQL (or postgres) database. This can be used to create hosts, graphs, items or triggers as well.
- Define complex template hierarchies with inheritance that you implement with your hosts. Never duplicate work setting up hosts.
- Screens - Define custom screens from the interface that display only the data you want to see for specific tasks.
- Variable monitoring interval per item
- Complex trigger evaluation. Define triggers in a high level language (can feature data from multiple triggers, multiple hosts etc). Really flexible. Can include flapping detection etc (not automatic with Zabbix).
- Real-time SLA reporting with custom fault trees.
- And much more that I cant think of at the time of writing....
What options for extending Zabbix are there?
Once you get to play with it you will come to realize that almost anything can be done using external scripts as checks. The need to extend Zabbix (except where performance is needed) is rare. 2.1.x / 2.2.x includes a modular plugin architecture for defining custom checks. This could be used for example to check the full uptime of a minecraft server or getting the number of players for use in an item. This could easily be done with a script called (custom user parameter or system.run check) although it depends on your performance requirements.
I will cover the development modules later in this series I hope.
Last edited by a moderator: