Zabbix is an enterprise-class distributed open-source monitoring solution. These Zabbix installation tips cover the requirements you should check before you start. Zabbix is released under the GPL, so it is free for commercial and non-commercial use.
What Is Zabbix?
Zabbix is open-source monitoring software for various IT additions, including networks, servers, virtual machines (VMs), and cloud services. It also provides monitoring metrics such as network utilization, CPU, and disk utilization. Its web-based graphical user interface lets users view their IT environment through customizable dashboards based on widgets, charts, network maps, slideshows, and reports.
You can deploy Zabbix on-premise or in the cloud, which gives you complete control over your data. With Zabbix distributed monitoring, remote scripts collect data from multiple devices in distributed locations. They then summarize that data in a dashboard or report, for example: – Server availability across the country. Zabbix can send mail notifications based on predefined events in a user’s IT environment. The tool supports various operating systems such as Mac OS, Solaris, Linux, and many more. It also uses a separate database to store the data and monitor the applications.
How Zabbix Works
Zabbix lets you automatically detect problem conditions within the incoming metrics flow and keep control of your infrastructure. It allows you to track millions of metrics from any source, and it is very flexible about threshold definition options. Zabbix also delivers multiple messaging channels, so the right people hear about the different types of events in their environment.
Real-time monitoring of all areas helps you find problems in the network and on the servers. The tool collects the data and analyzes it to create performance metrics. It also uses encrypted communication, so your data stays protected. It consists of several components: a server, a web interface, a database store, an agent, and a proxy.
Zabbix Installation Tips: Requirements for 6.2 (Current)
First, check the supported platforms. Then look at the hardware and software requirements. Finally, read the network requirements, because each component needs its ports open.
Supported platforms
Because a monitoring server is security-sensitive and mission-critical, UNIX is the only operating system that can consistently provide the required performance, fault tolerance, and resilience. Zabbix works with market-leading versions.
For the platforms listed below, Zabbix components are available and thoroughly tested. For example, you can run the Zabbix server on Linux but not on Windows, as the table shows.
| Platform | Server | Agent | Agent2 |
| Linux | x | x | x |
| IBM AIX | x | x | – |
| FreeBSD | x | x | – |
| NetBSD | x | x | – |
| OpenBSD | x | x | – |
| HP-UX | x | x | – |
| Mac OS X | x | x | – |
| Solaris | x | x | – |
| Windows | – | x | x |
Windows is the exception, because it runs only the agent and Agent2. Linux, however, supports all three components. So, pick your platform before you plan the rest of the setup.
Hardware requirements
Zabbix needs both physical memory and disc space.
The number of hosts and characteristics you watch determines how much disc space you need.
If you wish to preserve a lengthy history of the monitored parameters, allow at least a few GBs of space in the database.
Each Zabbix daemon process also needs multiple connections to a database server.
Finally, the database engine’s configuration determines how much room it sets aside for each connection.
So, plan your disc space around the number of hosts and parameters you watch. Keep in mind that a few GBs is only the minimum if you want a lengthy history.
CPU Requirements
Zabbix, and the Zabbix database in particular, may take a large number of CPU resources, depending on the number of monitored parameters and the database engine you select. Therefore, choose your database engine with the CPU load in mind.
Other hardware
Zabbix’s SMS notification capability requires a serial communication port and a serial GSM modem.
A USB-to-serial converter also works. So, you need this hardware only if you want SMS alerts.
Software Requirements
Modern web servers, top database engines, and the PHP scripting language are the foundation of Zabbix.
The mandatory requirements are constant. You need the optional requirements only to support a particular function. Because each database engine has its own needs, check the table below before you choose one.
| Software | Mandatory status | Supported versions | Comments |
| MySQL/Percona | One of | 8.0.X | Required if the Zabbix backend database is MySQL (or Percona). There must be an InnoDB engine. For creating a server/proxy, we advise utilizing the MariaDB Connector/C library. |
| MariaDB | One of | 10.5.00-10.8. | There must be an InnoDB engine. For creating a server/proxy, we advise utilizing the MariaDB Connector/C library. |
| Oracle | One of | 19c – 21c | If Oracle is used as the Zabbix backend database, it is necessary. |
| PostgreSQL | One of | 13.0-15.X | If PostgreSQL is used as the Zabbix backend database, this is necessary. Since Zabbix 6.2.4, PostgreSQL 15 is supported. |
| TimescaleDB for PostgreSQL | One of | 2.0.1-2.8 | If TimescaleDB is utilized as a PostgreSQL database extension, this is necessary. Install the compression-compatible TimescaleDB Community Edition. Keep in mind that PostgreSQL 15 is not yet supported by TimescaleDB. |
Optional Software for Your Zabbix Installation
The items below are optional, so you need them only for the features they support.
| Software | Mandatory status | Supported versions | Comments |
| SQLite | Optional | 3.3.5-3.34.X | It is only possible to use SQLite with Zabbix proxies. Required if the Zabbix proxy database is SQLite. |
| smartmontools | Optional | 7.1 or later | For use with Zabbix agent 2. |
| who | Optional | For the user count plugin, a requirement. | |
| dpkg | Optional | For the system.sw.packages plugin, it is necessary. | |
| pkgtool | Optional | For the system.sw.packages plugin, it is necessary. | |
| rpm | Optional | For the system.sw.packages plugin, it is necessary. |
First, pick one database engine from the list. For example, if you choose MySQL or MariaDB, you need an InnoDB engine. Note that TimescaleDB does not support PostgreSQL 15 yet. Then check the optional items, such as smartmontools for Agent 2, only if you need those features.
Frontend
Modern web servers, top database engines, and the PHP scripting language are the foundation of Zabbix.
The mandatory requirements are constant. You need the optional requirements only to support a particular function.
The Zabbix frontend’s minimum supported screen width is 1200px.
| Software | Mandatory status | Version | Comments |
| Apache | yes | 1.3.12 or later | |
| PHP | yes | 7.4.0 or later, 8.0, 8.1 |
|
| PHP extensions: | |||
| gd | yes | 2.0.28 or later | PNG images (—with-png-dir), JPEG images (—with-jpeg-dir), and Free Type 2 images must all be supported by the PHP GD extension (—with-freetype-dir). |
| bcmath | yes | php-bcmath (–enable-bcmath) | |
| ctype | yes | php-ctype (–enable-ctype) | |
| libXML | yes | 2.6.15 or later | php-xml, if the distributor offers it as a separate package. |
| xmlreader | yes | php-xmlreader, if the vendor offers it as a separate package. | |
| xmlwriter | yes | php-xmlwriter, if the distributor offers it as a separate package. | |
| session | yes | php-session, if the distributor offers it as a separate package. | |
| sockets | yes | php-net-socket (—enable-sockets). necessary to support user scripts. |
|
| mbstring | yes | php-mbstring (–enable-mbstring) | |
| gettext | yes | php-gettext (—with-gettext) (—with-gettext). need for translation to function. | |
| ldap | No | hp-ldap.Only necessary if the frontend uses LDAP authentication. | |
| openssl | No | php-openssl. Only necessary if the frontend employs SAML authentication. | |
| mysqli | No | If MySQL is used as the Zabbix backend database, it is necessary. | |
| oci8 | No | If Oracle is used as the Zabbix backend database, it is necessary. | |
| pgsql | No | If PostgreSQL is used as the Zabbix backend database, it is necessary. |
For example, the frontend needs Apache 1.3.12 or later and PHP 7.4.0 or later. You need the ldap extension only if the frontend uses LDAP authentication. Likewise, openssl matters only for SAML authentication. So, you can skip both if you do not use those logins. In the same way, install only the database extension that matches your backend: mysqli, oci8 or pgsql.
External frontend libraries
Zabbix also includes the following external frontend libraries, so you do not need to install them separately.
| Library | Mandatory status | Minimum version | Comments |
| jQuery JavaScript Library | Yes | 3.6.0 | JavaScript package that makes cross-browser development easier. |
| jQuery UI | Yes | 1.12.1 | A collection of jQuery-based user interfaces interactions, effects, widgets, and themes. |
| OneLogin’s SAML PHP Toolkit | Yes | 4.0.0 | A PHP toolkit that enhances support for SAML 2.0 authentication for Zabbix login. |
| Symfony Yaml Component | Yes | 5.1.0 | Adds assistance for YAML-formatted export and import of Zabbix configuration items. |
Then check the libraries for the server and proxy. First come the mandatory ones.
Web browser on the client side
JavaScript and cookies both need to be enabled, because the frontend needs both.
Supported browsers also include the most recent stable versions of Apple Safari, Microsoft Edge, Mozilla Firefox, Google Chrome, and Opera.
Server/proxy
Mandatory requirements are always needed, while optional criteria support particular functions. So, check which libraries you need before you build the server or proxy.
| Requirement | Mandatory status | Description |
| libevent | Yes | Perl Compatible Regular Expression (PCRE) support requires the PCRE/PCRE2 library. Depending on the GNU/Linux distribution, the nomenclature may vary, for instance, “libpcre3” or “libpcre1.” There is support for PCRE versions 8.x and 10.x (as of Zabbix 6.0.0). |
| libpthread | Yes | Communication between processes is necessary. Version 1.4 and up. |
| libresolv | Yes | necessary to support mutex and read-write locks |
| libiconv | Yes | is necessary for DNS resolution. |
| libz | Yes | necessary for text encoding and format conversion (could be part of libc). Required for Linux Zabbix server |
| libm | Yes | necessary to support compression. |
| libmysqlclient | Yes | a math library. Only the Zabbix server needs this. |
The server also needs the database library that matches your database, so choose it with care.
Database and optional libraries for the server and proxy
The libraries below depend on your database and the features you use.
| Requirement | Mandatory status | Description |
| libmariadb | One of the | necessary if MariaDB is employed. |
| libclntsh | One of the | necessary if Oracle is employed. Versions 10.0 and above. |
| libpq | One of the | a need if PostgreSQL is employed. 9.2 or a later version. |
| libsqlite3 | One of the | necessary if Sqlite is employed. Only a need for a Zabbix proxy. |
| libOpenIPMI | No | necessary to support IPMI. Only necessary for Zabbix servers. |
| libssh2 or libssh | No | needed for SSH verifications. Version 0.6.0 or above; version 1.0 or higher (libssh2) (libssh). Since Zabbix 4.4.6, libssh is supported. |
| libcurl | No | Required for web. page.* Zabbix agent items, HTTP agent items, Elasticsearch, VMware monitoring, SMTP authentication, and (if used). Version 7.28.0 or a later version is advised. Version requirements for libcurl: Version 7.20.0 or above for SMTP authentication Version 7.28.0 or higher of Elasticsearch |
| libxml2 | No | need for XML XPath preparation and VMware monitoring. |
| libnetsnmp | No | necessary to support SNMP. It must be 5.3.0 or later. |
| libunixodbc | No | necessary for maintaining databases. |
| libgnutls or libopenssl | No | necessary while utilizing encryption. Versions required: libgnutls 3.1.18 and libopenssl 1.0. |
| libldap | No | required to support LDAP |
| fping | No | For ICMP ping objects, necessary. |
For example, the server needs libcurl for web page items, HTTP agent items, Elasticsearch, VMware monitoring and SMTP authentication. You need libssh2 or libssh only for SSH checks. Therefore, you can skip these libraries if you do not use those features.
Agent
The agent needs the libraries below, and several of them are not needed on Windows.
| Requirement | Mandatory status | Description |
| libpcre/libpcre2 | One of | Perl Compatible Regular Expression (PCRE) support requires the PCRE/PCRE2 library. Depending on the GNU/Linux distribution, the nomenclature may vary, for instance, “libpcre3” or “libpcre1.” There is support for PCRE versions 8.x and 10.x (as of Zabbix 6.0.0). necessary for monitoring logs. Windows also need this. |
| libpthread | Yes | necessary to support mutex and read-write locks (could be part of libc). Not necessary for Windows. |
| libresolv | Yes | is necessary for DNS resolution (could be part of libc). Not necessary for Windows. |
| libiconv | Yes | It’s necessary for text in log items, file content, file regex, and rematch items to be converted to UTF-8 encoding and format (could be part of libc). Not necessary for Windows. |
| libgnutls or libopenssl | No | If utilizing encryption, necessary. Libopenssl 1.0.1 and libgnutls 3.1.18 are the minimum requirements. It is necessary to have OpenSSL 1.1.1 or later on Microsoft Windows. |
| libldap | No | necessary if LDAP is employed. Not compatible with Windows. |
| libcurl | No | Items that are Zabbix agents required for web pages. Not compatible with Windows. Version 7.28.0 or a later version is advised. |
| libmodbus | No | If Modbus monitoring is utilized, it is just necessary. Version 3.0 and up. |
For example, libcurl and libldap are not compatible with Windows. Windows also needs OpenSSL 1.1.1 or later for encryption. So, check these notes before you install the agent on a Windows host.
Agent 2
Agent 2 needs fewer libraries than the agent, so its table is short.
| Requirement | Mandatory status | Description |
| libpcre/libpcre2 | One of | Perl Compatible Regular Expression (PCRE) support requires the PCRE/PCRE2 library. Depending on the GNU/Linux distribution, the nomenclature may vary, for instance, “libpcre3” or “libpcre1.” There is support for PCRE versions 8.x and 10.x (as of Zabbix 6.0.0). necessary for monitoring logs. Windows also need this. |
| libopenssl | No | necessary while utilizing encryption. On UNIX platforms, OpenSSL 1.0.1 or later is necessary. It is necessary to activate PSK functionality in the OpenSSL library. It does not support LibreSSL. It is necessary to have OpenSSL 1.1.1 or later on Microsoft Windows computers. |
Because Agent 2 uses OpenSSL for encryption, you must activate PSK functionality in the OpenSSL library. However, Agent 2 does not support LibreSSL.
Golang libraries
Agent 2 also relies on several Go libraries, so the table below lists them.
| Requirement | Mandatory status | Minimum version | Description |
| git.zabbix.com/ap/plugin-support | Yes | 1.X.X | Custom support library for Zabbix. primarily for plugin |
| github.com/BurntSushi/locker | Yes | 0.0.0 | Access sync, read/write locks. |
| github.com/chromedp/cdproto | Yes | 0.0.0 | Covers the Chrome DevTools Protocol domains, generated commands, types, and events. |
| github.com/chromedp/chromedp | Yes | 0.6.0 | Support for Chrome DevTools Protocol (report generation) |
| github.com/dustin/gomemcached | Yes | 0.0.0 | A go toolkit for the Memcached binary protocol. |
| github.com/eclipse/paho.mqtt.golang | Yes | 1.2.0 | A library that manages connections for MQTT. |
| github.com/fsnotify/fsnotify | Yes | 1.4.9 | file system notifications for Go across platforms |
| github.com/go-ldap/ldap | Yes | 3.0.3 | The Functionality of the LDAP v3 protocol for the GO programming language. |
| github.com/go-ldap/ldap | Yes | 1.2.4 | Golang’s Win32 ole implementation. |
| github.com/godbus/dbus | Yes | 4.1.0 | D-Bus native Go bindings. |
| github.com/go-sql-driver/mysql | Yes | 1.5.0 | the MySQL driver |
| github.com/godror/godror | Yes | 0.20.1 | Driver for Oracle DB. |
| github.com/mattn/go-sqlite3 | Yes | 2.0.3 | driver for sqlite3 |
| github.com/mediocregopher/radix/v3 | Yes | 3.5.0 | Redis customer. |
| github.com/memcachier/mc/v3 | Yes | 3.0.1 | binary client for Memcached. |
| github.com/miekg/dns | Yes | 1.1.43 | library for DNS. |
| github.com/miekg/dns | Yes | 0.0.1 | Key-string store with embeddable filesystem mapping. |
| github.com/goburrow/modbus | Yes | 0.1.0 | Modbus implementation that is fault tolerant. |
| golang.org/x/sys | Yes | 0.0.0 | Go packages for interacting with the operating system at a low level. used in the plugin support lib as well. employed in the MongoDB plugin. |
| github.com/natefinch/npipe | On Windows | 0.0.0 | Implementation of named pipes in Windows. used in the plugin support lib as well. |
| github.com/goburrow/serial | Yes, indirect1 | 0.1.0 | Modbus serial library. |
| golang.org/x/xerrors | Yes, indirect1 | 0.0.0 | error-manipulation tools. |
| gopkg.in/asn1-ber.v1 | Yes, indirect1 | 1.0.0 | ASN1 BER encoding/decoding library. |
| github.com/go-stack/stack | No, indirect1 | 1.8.0 | |
| github.com/golang/snappy | No, indirect1 | 0.0.1 | |
| github.com/klauspost/compress | No, indirect1 | 1.13.6 | |
| github.com/xdg-go/pbkdf2 | No, indirect1 | 1.0.0 | |
| github.com/xdg-go/scram | No, indirect1 | 1.0.2 | |
| github.com/xdg-go/stringprep | No, indirect1 | 1.0.2 | |
| github.com/youmark/pkcs8 | No, indirect1 | 0.0.0 | |
| golang.org/x/sys | No, indirect1 | 0.0.0 |
What Indirect Libraries Mean
An indirect library is one that the agent uses. Because Zabbix makes use of the package-using library, the indirect library is necessary too.
Database size
Zabbix configuration data don’t expand too much and only take up a certain amount of disc space.
The following factors, which determine how much historical data is stored, largely determine the size of the Zabbix database:
- Number of processed values per second
- Housekeeper settings for history
- Housekeeper setting for trends
- Housekeeper settings for events
So, plan the disc size around these four factors. However, the configuration data itself stays small.
Time synchronization
On a server running Zabbix, accurate system time is crucial. The most well-known daemon for synchronizing the host’s time with other computers is ntpd. We highly advise synchronized system time on all systems where Zabbix components are active. So, run ntpd on every host that runs a Zabbix component, because it keeps the clocks in step.
Network requirements
The list of open ports for each component is as follows, and it applies to the default configuration.
| Port | Components |
| Frontend | http on 80, https on 443 |
| Server | 10051 (for use with active proxy/agents) |
| Active Proxy | 10051 |
| Passive Proxy | 10051 |
| Agent2 | 10050 |
| Trapper | |
| JavaGateway | 10053 |
| WebService | 10053 |
First, JavaGateway and WebService both use port 10053. So, open these ports in your firewall before you start. For example, open 10051 for the server so that active proxies and agents can reach it. Then check that the frontend can use ports 80 and 443.
Conclusion
Zabbix is open-source monitoring software intended to keep an eye on network servers and applications and help users locate network performance bottlenecks. It offers superior data-gathering performance and scales to large environments. The tool has several features that simplify tracking and troubleshooting threats and issues. Real-time monitoring helps you detect network and server problems.
Zabbix creates performance metrics from the data it collects and analyzes, and it uses encrypted communication to safeguard that data. In short, it is much less expensive, needs no additional installation steps, and is much easier to set up on the user’s computer. Keep these Zabbix installation tips in mind, and your setup should go more smoothly. If you need help with monitoring, see our products or contact us.
Need help with your infrastructure?
We build and run custom systems on AWS, Azure and Docker.



