Zabbix Documentation 2.2

3.04.04.4 (current)| In development:5.0 (devel)| Unsupported:1.82.02.22.43.23.44.2Guidelines

User Tools

Site Tools


manual:installation:requirements

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

manual:installation:requirements [2019/01/29 12:30]
manual:installation:requirements [2018/05/29 09:15] (current)
martins-v some rewording
Line 1: Line 1:
 +==== -#2 Requirements ====
  
 +=== Hardware ===
 +
 +== 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. ​
 +<​note>​The more physical memory you have, the faster the database (and therefore Zabbix) works! </​note>​
 +
 +== CPU ==
 +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:​
 +
 +^Name    ^Platform ​ ^CPU/​Memory ​  ​^Database ^ Monitored hosts ^
 +|//​Small// ​ |CentOS ​ |Virtual Appliance ​ |MySQL InnoDB ​ |100  |
 +|//​Medium// ​ |CentOS ​ |2 CPU cores/​2GB ​ |MySQL InnoDB ​ |500  |
 +|//​Large// ​ |RedHat Enterprise Linux  |4 CPU cores/​8GB ​ |RAID10 MySQL InnoDB or PostgreSQL ​ |>​1000 ​ |
 +|//Very large// ​ |RedHat Enterprise Linux  |8 CPU cores/​16GB ​ |Fast RAID10 MySQL InnoDB or PostgreSQL ​ |>​10000 ​ |
 +
 +<​note>​Actual configuration depends on the number of active items and refresh rates very much. It is highly recommended to run the database on a separate box for large installations.</​note>​
 +=== 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:
 +
 +  * Linux
 +  * IBM AIX 
 +  * FreeBSD ​
 +  * NetBSD
 +  * OpenBSD ​
 +  * HP-UX 
 +  * Mac OS X 
 +  * Solaris
 +  * Windows: all desktop and server versions since 2000 (Zabbix agent only)
 +
 +<​note>​Zabbix may work on other Unix-like operating systems as well.</​note>​
 +
 +=== Software ===
 +
 +Zabbix is built around a modern Apache web server, leading database engines, and PHP scripting language.
 +
 +== Database management system ==
 +^  Software ​ ^  Version ​ ^  Comments ​ ^
 +|//​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. ​ |
 +|//​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 [[http://​www.postgresql.org/​docs/​8.3/​static/​release-8-3.html|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. ​ |
 +<note important>​IBM DB2 support is experimental!</​note>​
 +<note important>​While SQLite3 can be used with Zabbix proxies without any problems, using SQLite3 with Zabbix server is not recommended. Since Zabbix 2.2.5, simultaneous database access with server and frontend may even lead to database corruption!</​note>​
 +== Frontend ==
 +
 +The following software is required to run Zabbix frontend:
 +
 +^  Software ​ ^  Version ​ ^  Comments ​ ^
 +|//​Apache// ​ |1.3.12 or later  |  |
 +|//​PHP// ​ |5.3.0 or later  |PHP v7 is not supported. ​ |
 +^  PHP extensions: ​ |||
 +|//​gd// ​ |2.0 or later  |PHP GD extension must support PNG images (//<​nowiki>​--with-png-dir</​nowiki>//​),​ JPEG (//<​nowiki>​--with-jpeg-dir</​nowiki>//​) images and FreeType 2 (//<​nowiki>​--with-freetype-dir</​nowiki>//​). ​ |
 +|//​bcmath// ​ |  |php-bcmath (//<​nowiki>​--enable-bcmath</​nowiki>//​) ​ |
 +|//​ctype// ​ |  |php-ctype (//<​nowiki>​--enable-ctype</​nowiki>//​) ​ |
 +|//​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 (//<​nowiki>​--enable-sockets</​nowiki>//​). Required for user script support. ​ |
 +|//​mbstring// ​ |  |php-mbstring (//<​nowiki>​--enable-mbstring</​nowiki>//​) ​ |
 +|//​gettext// ​ |  |php-gettext (//<​nowiki>​--with-gettext</​nowiki>//​). Required for translations to work.  |
 +|//​ldap// ​ |  |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. ​ |
 +|//​oci8// ​ |  |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. ​ |
 +
 +<​note>​Zabbix may work on previous versions of Apache, MySQL, Oracle, and PostgreSQL as well.</​note>​
 +
 +<note important>​For other fonts than the default DejaVu, PHP function [[http://​php.net/​manual/​en/​function.imagerotate.php|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.</​note>​
 +== 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.
 +
 +<note warning>​Starting with Zabbix 2.2.21, 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.</​note>​
 +== Server ==
 +
 +^Requirement^Description^
 +|//​OpenIPMI// ​ | Required for IPMI support. ​ |
 +|//​libssh2// ​ | Required for SSH support. Version 1.0 or higher.|
 +|//​fping// ​ | Required for [[manual:​config:​items:​itemtypes:​simple_checks#​icmp_pings|ICMP ping items]].|
 +|//​libcurl// ​ | Required for web monitoring and VMware monitoring.|
 +|//​libiksemel// ​ | Required for Jabber support.|
 +|//​libxml2// ​ | Required for VMware monitoring. ​ |
 +|//​net-snmp// ​ | Required for SNMP support. ​ |
 +
 +== 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:
 +
 +^  Library ​ ^  License ​ ^  Website ​ ^  Comments ​ ^
 +|//​logback-core-0.9.27.jar// ​   | EPL 1.0, LGPL 2.1  | http://​logback.qos.ch/​ | Tested with 0.9.27, 1.0.13, and 1.1.1. |
 +|//​logback-classic-0.9.27.jar//​ | EPL 1.0, LGPL 2.1  | http://​logback.qos.ch/​ | Tested with 0.9.27, 1.0.13, and 1.1.1. |
 +|//​slf4j-api-1.6.1.jar// ​       | MIT License ​       | http://​www.slf4j.org/ ​ | Tested with 1.6.1, 1.6.6, and 1.7.6. ​  |
 +|//​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.
 +<​note>​The size of text/log item values is impossible to predict exactly, but you may expect around 500 bytes per value.</​note>​
 +  * 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:
 +
 +^Parameter^Formula for required disk space (in bytes)^
 +|//Zabbix configuration// ​ |Fixed size. Normally 10MB or less.  |
 +|//​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. ​ |
 +
 +<​note>​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.</​note>​
 +
 +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.
 +<​note>​Disk space requirements for nodes in distributed setup are calculated in a similar way, but this also depends on a total number of child nodes linked to a node.</​note>​
 +
 +=== Time synchronisation ===
 +
 +It is very important to have precise system date on server with Zabbix running. [[http://​www.ntp.org/​|ntpd]] is the most popular daemon that synchronizes the host's time with the time of other machines.