Cloud and DevOps

Zabbix Installation : Tips and Tricks for a Smoother Process

By the Zehntech team25 Apr 2023Updated 30 Jan 202411 min read
Zabbix Installation : Tips and Tricks for a Smoother Process

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.

Zabbix

Need help with your infrastructure?

We build and run custom systems on AWS, Azure and Docker.