Alright, enough with the dry-talk, what will we get? Let's look at dashboard screen of Zabbix web frontend, showing only a very basic configuration.
As we can see, Zabbix dashboard shows a high level overview of overall monitored system status, status of Zabbix, some of the most recent problems, and a few more things. This particular dashboard shows a very tiny Zabbix setup. Eventually your Zabbix installation will grow and provide monitoring of different devices, including servers of various operating systems, different services and hardware state on those servers, network devices, UPSes, web pages, other components of IT, and other infrastructure.
The frontend will provide various options for visualizing data, starting from problem lists and simple graphs ending with network maps and reports, while backend will work hard to provide information that this visualization is based on and send out alerts. All of this will require some configuration that we will learn to perform along the course of this book.
Before we can configure Zabbix, we need to install it. Usually you'll have two choices - either installing from distribution packages, or setting it up from the source code. Unless you highly value distribution packaging and are not ready to roll your own packages, it is suggested to set up the latest version from sources, because Zabbix is being developed at a relatively noticeable pace and there's always some neat feature in the next version that makes life easier.
At first we will set up Zabbix server, database, and frontend, all running on the same machine and using a MySQL database.
If you decide to install Zabbix from your distribution packages, installation procedure and package naming schemes will differ. Refer to your distribution's documentation for that information.
There are a few benefits to using distribution packages. These include:
Compiling from source also has its share of benefits. They are:
Newer versions with more features and improvements
More fine-grained control over compiled-in functionality
The most widely-used Zabbix architecture is a server that queries agents. That's what we will learn to set up so that we can monitor our test system.
As with most software, there are some prerequisites that we will need to run Zabbix components. That includes requirements for hardware and other software that the Zabbix server and agent depend on. For the purpose of these instructions, we will settle on running Zabbix on Linux, using a MySQL database. The specific Linux distribution does not matter much it's best to choose the one you are most familiar with.
Now we should get to compiling the various components of Zabbix, so make sure to install the minimum required packages to get Zabbix working with MySQL. They are:
GCC
Automake
MySQL (http://www.mysql.com/)
Depending on your distribution and the desired functionality you might also need some or all of the following packages:
zlib-devel
mysql-devel (for MySQL support)
glibc-devel
curl-devel (for web monitoring)
libidn-devel (curl-devel might depend on it)
openssl-devel (curl-devel might depend on it)
net-snmp-devel (for SNMP support)
popt-devel (net-snmp-devel might depend on it)
rpm-devel (net-snmp-devel might depend on it)
OpenIPMI-devel (for IPMI support)
libssh2-devel (for direct SSH checks)
Hardware requirements vary wildly depending on the configuration. It is impossible to give definite requirements, so any production installation should evaluate them individually. For our test environment, though, even as little RAM as 128 MB should be enough. CPU power in general won't play a huge role; Pentium II class hardware should be perfectly capable of dealing with it, although generating graphs with many elements or other complex views can require more powerful hardware to operate at an acceptable speed. You can take these as a starting point as well when installing in a virtual machine.
Of course, the more resources you give to Zabbix, the snappier and happier it will be.