ZabbixManual1.4/Installation
How to Get ZABBIX
Check the ZABBIX Home Page at http://www.zabbix.com for information about the current version and for downloading instructions.
Requirements
Hardware Requirements
Memory Requirements
ZABBIX requires both physical and disk memory. 128 MB of physical memory and 256 MB of free disk space could be a good starting point. However, the amount of required disk memory obviously depends on the number of hosts and parameters that are being monitored. If you're planning to keep a long history of monitored parameters, you should be thinking of at least a couple of gigabytes to have enough space to store the history in the database.
Each ZABBIX daemon process requires several connections to a database server. Amount of memory allocated for the connection depends on configuration of the database engine.
Note: The more physical memory you have, the faster the database (and therefore ZABBIX) works!
CPU Requirements
ZABBIX and especially ZABBIX database may require significant CPU resources depending on number of monitored parameters and chosen database engine.
Other hardware
A serial communication port and a serial GSM Modem required for using SMS notifications built-in ZABBIX.
Examples of hardware configuration
The table provides several hardware configurations:
Name | Platform | CPU/Memory | Database | Monitored hosts |
Small | Ubuntu Linux | P2 350MHz/256MB | MySQL MyISAM | 20 |
Medium | Ubuntu Linux 64 bit | AMD Athlon 3200+/2GB | MySQL MyISAM | 500 |
Large | Ubuntu Linux 64 bit | Intel Dual Core 6400/4GB/RAID | MySQL MyISAM or PostgreSQL | >1000 |
Very large | RedHat Enterprise | Intel Xeon 2 CPU/8GB/RAID | MySQL MyISAM or PostgreSQL | >10000 |
Note: Actual configuration depends on number of active items and refresh rates very much. It is recommended to keep database engine on a separate box for large installations.
Supported Platforms
Due to security requirements and mission-critical nature of monitoring server, UNIX is the only operating system that can consistently deliver the necessary performance, fault tolerance and resilience. ZABBIX operates on market leading versions.
ZABBIX is tested on the following platforms:
- AIX
- FreeBSD
- HP-UX
- Linux
- Mac OS/X
- OpenBSD
- SCO Open Server
- Solaris
Note: ZABBIX may work on other Unix-like operating systems as well.
Software Requirements
ZABBIX is built around modern Apache WEB server, leading database engines, and the PHP scripting language.
The following software is required to run ZABBIX:
Software | Version | Comments |
Apache | 1.3.12 or later | |
PHP | 4.3 or later | |
PHP modules:
php-gd php-bcmath |
4.3 or later | PHP GD module must support PNG images. |
MySQL
php-mysql |
3.22 or later | Required if MySQL is used as ZABBIX backend database. |
Oracle
php-sqlora8 |
9.2.0.4 or later | Required if Oracle is used as ZABBIX backend database. |
PostgreSQL
php-pgsql |
7.0.2 or later | Required if PostgreSQL is used as ZABBIX backend database.Consider using PostgreSQL 8.x or later for much better performance. |
SQLite
php-sqlite3 |
3.3.5 or later | Required if SQLite is used as ZABBIX backend database. |
Note: ZABBIX may work on previous versions of Apache, MySQL, Oracle, and PostgreSQL as well.
WEB browser on client side
Support for HTML and PNG images required. MS Explorer (5.xx and 6.xx) and Mozilla 1.x work perfectly. Cookies and JavaScript must be enabled. Other browsers may work with ZABBIX as well.
Choice of database engine
ZABBIX supports four database engines:
- MySQL
- Oracle
- PostgreSQL
- SQLite
Each database engine has its own advantages. We cannot recommend one over another.
Choice of database engine depends on the following aspects:
- how powerful is your hardware
- free or commercial database engine
- how busy is ZABBIX Server
The table can be used as a general recommendation on choice of database engine.
Usage of ZABBIX Server | Database engine of choice |
Heavy duty Node/Standalone | MySQL MyISAM |
Light duty Node/Standalone | PostgreSQL
MySQL MyISAM |
Remote zero-admin Node | PostgreSQL
SQLite |
Standalone light duty | MySQL MyISAM |
Time synchronisation
It is very important to have precise system date on server with ZABBIX running. timed is one of most popular daemons that synchronises the host’s time with the time of other machines.
Components
ZABBIX Components
ZABBIX consists of several major software components, the responsibilities of which are outlined below.
ZABBIX Server
This is the centre of the ZABBIX software. The Server can remotely check networked services (such as web servers and mail servers) using simple service checks, but it is also the central component to which the Agents will report availability and integrity information and statistics. The Server is the central repository in which all configuration, statistical and operational data are stored, and it is the entity in the ZABBIX software that will actively alert administrators when problems arise in any of the monitored systems.
ZABBIX can also perform agent-less monitoring and also monitor network devices using SNMP agents.
ZABBIX Agent
In order to actively monitor local resources and applications (such as harddrives, memory, processor statistics etc.) on networked systems, those systems must run the ZABBIX Agent. The Agent will gather operational information from the system on which it is running, and report these data to the ZABBIX for further processing. In case of failures (such as a harddisk running full, or a crashed service process), the ZABBIX Server can actively alert the administrators of the particular machine that reported the failure.
The ZABBIX Agents are extremely efficient because of use of native system calls for gathering statistical information.
The WEB Interface
In order to allow easy access to the monitoring data and then configuration of ZABBIX from anywhere and from any platform, the Web-based Interface is provided. The Interface is a part of the ZABBIX Server, and is usually (but not necessarily) run on the same physical machine as the one running the ZABBIX Server.
Note: ZABBIX front-end must run on the same physical machine of SQLite is used.
Installation from Source
Software requirements
Building of ZABBIX server or agents from sources requires additional software.
The following software is required to compile ZABBIX: One of the following database engines:
MySQL Headers and Libraries Version 3.22 or later required. Oracle Headers and Libraries Sqlora8 headers and libraries are required. PostgreSQL Headers and Libraries Version 7.0.2 or later required. Consider using PostgreSQL 8.x for much better performance. SQLite Headers and Libraries Version 3.3.5 or later required.
Note: Usually provided as part of mysql-dev, postgresql-dev, sqlite3-dev packages.
NET-SNMP (or UCD-SNMP) library and header files Required for SNMP support. Optional. Iksemel library and header files Required to enable Jabber messaging. Optional. Libcurl library and header files Required for WEB monitoring module. Optional. C Compiler C compiler is required. GNU C compiler is the best choice for open platforms. Other (HP, IBM) C compilers may be used as well. GNU Make GNU make is required to process ZABBIX Makefiles.
Structure of ZABBIX distribution
doc
The directory contains this Manual in different formats
src
The directory contains sources for all ZABBIX processes except frontends.
src/zabbix_server
The directory contains Makefile and sources for zabbix_server.
src/zabbix_agent
The directory contains Makefile and sources for zabbix_agent and zabbix_agentd.
src/zabbix_sender
The directory contains Makefile and sources for zabbix_sender.
include
The directory contains include ZABBIX files.
misc
misc/init.d
The directory contains start-up scripts for different platforms.
misc/pinger
- The directory contains scripts for ICMP pinging, pinger.pl.
frontends
frontends/php
The directory contains sources for PHP frontend.
create
The directory contains SQL script for initial database creation.
create/mysql
MySQL database schema.
create/postgresql
PostgreSQL database schema.
create/data
Data for initial database creation.
upgrades
The directory contains upgrade procedures for different versions of ZABBIX.
ZABBIX Server
Server side
Step 1 Create the ZABBIX superuser account
This is the user the server will run as. For production use you should create a dedicated unprivileged account ('zabbix' is commonly used). Running ZABBIX as 'root','bin', or any other account with special rights is a security risk. Do not do it!