Memory
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.
The more
physical memory you have, the faster the database (and therefore Zabbix)
works!
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 are required for
using SMS notification support in Zabbix. USB-to-serial converter will
also work.
Examples of hardware configuration
The table provides several examples of hardware configurations:
Actual configuration depends on the number of active items
and refresh rates very much (see
database
size
section of this
page for details). It is highly recommended to run the database on a
separate box for large installations.
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:
Linux
IBM AIX
FreeBSD
NetBSD
OpenBSD
HP-UX
Mac OS X
Solaris
Windows: all desktop and server versions since 2000 (Zabbix agent
only)
Zabbix may work on other Unix-like operating systems as
well.
Zabbix disables core dumps on
UNIX platforms if compiled with encryption and does not start if system
(e.g. SELinux policy) does not allow disabling of core
dumps.
Software
Zabbix is built around a modern Apache web server, leading database
engines, and PHP scripting language.
Database management system
MySQL
5.0.3 - 5.7.x
Required if MySQL is used as Zabbix backend database. InnoDB engine is required.
MariaDB also works with Zabbix.
Note
that MySQL 8.0 is not supported in Zabbix pre-4.0 versions.
We recommend using the
MariaDB Connector/C
library for building server/proxy regardless of whether you use a MySQL or MariaDB database server.
Oracle
10g or later
Required if Oracle is used as Zabbix backend database.
PostgreSQL
8.1 or later
Required if PostgreSQL is used as Zabbix backend database.
It is suggested to use at least PostgreSQL 8.3, which
introduced much better VACUUM performance
.
SQLite
3.3.5 or later
Required if SQLite is used as Zabbix backend database.
IBM DB2
9.7 or later
Required if IBM DB2 is used as Zabbix backend database.
While SQLite3 can be used with Zabbix proxies
without any problems, using SQLite3 with Zabbix server is not
recommended. Since Zabbix 2.4.0, simultaneous database access with
server and frontend may even lead to database corruption!
Frontend
The following software is required to run Zabbix frontend:
2.0 or later
PHP GD extension must support PNG images (
--with-png-dir
), JPEG (
--with-jpeg-dir
) images and FreeType 2 (
--with-freetype-dir
).
bcmath
php-bcmath (
--enable-bcmath
)
ctype
php-ctype (
--enable-ctype
)
libXML
2.6.15 or later
php-xml or php5-dom, if provided as a separate package by the distributor.
xmlreader
php-xmlreader, if provided as a separate package by the distributor.
xmlwriter
php-xmlwriter, if provided as a separate package by the distributor.
session
php-session, if provided as a separate package by the distributor.
sockets
php-net-socket (
--enable-sockets
). Required for user script support.
mbstring
php-mbstring (
--enable-mbstring
)
gettext
php-gettext (
--with-gettext
). Required for translations to work.
php-ldap. Required only if LDAP authentication is used in the frontend.
ibm_db2
Required if IBM DB2 is used as Zabbix backend database.
mysqli
Required if MySQL is used as Zabbix backend database.
Required if Oracle is used as Zabbix backend database.
pgsql
Required if PostgreSQL is used as Zabbix backend database.
sqlite3
Required if SQLite is used as Zabbix backend database.
function
imagerotate
might
be required. If it is missing, these fonts might be rendered incorrectly
when a graph is displayed. This function is only available if PHP is
compiled with bundled GD, which is not the case in Debian and other
distributions.
Web browser on client side
Cookies and Java Script must be enabled.
Latest versions of Google Chrome, Mozilla Firefox, Microsoft Internet
Explorer and Opera are supported. Other browsers (Apple Safari,
Konqueror) may work with Zabbix as well.
Starting with Zabbix 3.0.13, the same origin policy
for IFrames is implemented, which means that Zabbix cannot be placed in
frames on a different domain.
Still, pages placed into a Zabbix frame will have access to Zabbix
frontend (through JavaScript) if the page that is placed in the frame
and Zabbix frontend are on the same domain. A page like
http://secure-zabbix.com/cms/page.html
, if placed into screens on
http://secure-zabbix.com/zabbix/
, will have full JS access to
Zabbix.
Server
libcurl
Required for web monitoring, VMware monitoring and SMTP authentication. For SMTP authentication, version 7.20.0 or higher is required.
libiksemel
Required for Jabber support.
libxml2
Required for VMware monitoring.
net-snmp
Required for SNMP support.
GnuTLS
,
OpenSSL
,
LibreSSL
or
mbedTLS
Required when using
encryption
.
Java gateway
If you obtained Zabbix from the source repository or an archive, then
the necessary dependencies are already included in the source tree.
If you obtained Zabbix from your distribution's package, then the
necessary dependencies are already provided by the packaging system.
In both cases above, the software is ready to be used and no additional
downloads are necessary.
If, however, you wish to provide your versions of these dependencies
(for instance, if you are preparing a package for some Linux
distribution), below is the list of library versions that Java gateway
is known to work with. Zabbix may work with other versions of these
libraries, too.
The following table lists JAR files that are currently bundled with Java
gateway in the original code:
android-json-4.3_r3.1.jar
Apache License 2.0
https://android.googlesource.com/platform/libcore/+/master/json
Tested with 2.3.3_r1.1 and 4.3_r3.1. See src/zabbix_java/lib/README for instructions on creating a JAR file.
Java gateway compiles and runs with Java 1.6 and above. It is
recommended that those who provide a precompiled version of the gateway
for others use Java 1.6 for compilation, so that it runs on all versions
of Java up to the latest one.
Database size
Zabbix configuration data require a fixed amount of disk space and do
not grow much.
Zabbix database size mainly depends on these variables, which define the
amount of stored historical data:
Number of processed values per second
This is the average number of new values Zabbix server receives every
second. For example, if we have 3000 items for monitoring with refresh
rate of 60 seconds, the number of values per second is calculated as
3000/60 =
50
.
It means that 50 new values are added to Zabbix database every second.
Housekeeper settings for history
Zabbix keeps values for a fixed period of time, normally several weeks
or months. Each new value requires a certain amount of disk space for
data and index.
So, if we would like to keep 30 days of history and we receive 50 values
per second, total number of values will be around (
30
*24*3600)*
50
= 129.600.000, or about 130M of values.
Depending on the database engine used, type of received values (floats,
integers, strings, log files, etc), the disk space for keeping a single
value may vary from 40 bytes to hundreds of bytes. Normally it is around
90 bytes per value for numeric items. In our case, it means that 130M of
values will require 130M * 90 bytes =
10.9GB
of disk space.
The size of text/log item values is impossible to predict
exactly, but you may expect around 500 bytes per value.
Housekeeper setting for trends
Zabbix keeps a 1-hour max/min/avg/count set of values for each item in
the table
trends
. The data is used for trending and long period
graphs. The one hour period can not be customised.
Zabbix database, depending on database type, requires about 90 bytes per
each total. Suppose we would like to keep trend data for 5 years. Values
for 3000 items will require 3000*24*365*
90
=
2.2GB
per year,
or
11GB
for 5 years.
Housekeeper settings for events
Each Zabbix event requires approximately 170 bytes of disk space. It is
hard to estimate the number of events generated by Zabbix daily. In the
worst case scenario, we may assume that Zabbix generates one event per
second.
It means that if we want to keep 3 years of events, this would require
3
*365*24*3600*
170
=
15GB
The table contains formulas that can be used to calculate the disk space
required for Zabbix system:
History
days*(items/refresh rate)*24*3600*bytes
items : number of items
days : number of days to keep history
refresh rate : average refresh rate of items
bytes : number of bytes required to keep single value, depends on database engine, normally \~90 bytes.
Trends
days*(items/3600)*24*3600*bytes
items : number of items
days : number of days to keep history
bytes : number of bytes required to keep single trend, depends on database engine, normally \~90 bytes.
Events
days*events*24*3600*bytes
events : number of event per second. One (1) event per second in worst case scenario.
days : number of days to keep history
bytes : number of bytes required to keep single trend, depends on database engine, normally \~170 bytes.
Average values such as \~90 bytes for numeric items, \~170
bytes for events have been gathered from real-life statistics using a
MySQL backend database.
So, the total required disk space can be calculated as:
Configuration + History + Trends + Events
The disk space will NOT be used immediately after Zabbix installation.
Database size will grow then it will stop growing at some point, which
depends on housekeeper settings.
Time synchronisation
It is very important to have precise system time on server with Zabbix
running.
ntpd
is the most popular daemon that
synchronizes the host's time with the time of other machines. It's
strongly recommended to maintain synchronised system time on all systems
Zabbix components are running on.
If the time is not synchronised Zabbix will convert timestamps of the
gathered data into Zabbix server time by taking client/server timestamps
after establishing data connection and adjusting the received item value
timestamps by the client-server time difference. To keep it simple and
avoid possible complications the connection latency is ignored. Because
of that the connection latency is added to the timestamps of data
acquired from active connections (active agent, active proxy, sender)
and subtracted from the timestamps of data acquired from passive
connections (passive proxy). All other checks are done in server time
and their timestamps are not adjusted.
What’s next?
requirements.md
Help us improve this page
Select the text you'd like to improve and press
Ctrl + Enter
Command + Enter
to send feedback to our editors.
Search tip
Press
Ctrl + Alt + H
Command + Option + H
to toggle search highlight
Need help?
Technical Support
All services
Professional Training
Zabbix Forum
Your feedback has been sent. We appreciate you taking the time to help improve Zabbix documentation.
Your suggestion has been sent to the editors. We appreciate you taking the time to help improve Zabbix documentation.
Something happened wrong. Please try again next time.