Zabbix is an enterprise-class distributed open-source monitoring solution. Zabbix is released under the GPL and is, therefore, free for commercial and non-commercial use. Zabbix is an 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. Zabbix’s Web-based graphical user interface allows users to view their IT environment via customizable dashboards based on widgets, charts, network maps, slideshows, and reports. Zabbix can be deployed on-premise or in the cloud to give you complete control over your data. With Zabbix distributed monitoring, remote scripts collect data from multiple devices in distributed locations and 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. The tool uses a separate database to store the data and monitor the applications.
Zabbix lets you automatically detect problem conditions within the incoming metrics flow and maintain control of your infrastructure. It allows you to track millions of metrics from any source and is very flexible regarding threshold definition options. Zabbix delivers its users with multiple messaging channels to inform the appropriate people about the different types of events in their environment. Real-time monitoring of all areas is possible to find problems in the network and on the servers. The Zabbix tool collects the data and analyzes it so that performance metrics can be created. The Zabbix tool uses encrypted communication so that the data can be protected. It consists of several components: a server, a web interface, a database store, an agent, and a proxy.
Requirements of Zabbix Installation Process (6.2 (current))
Supported platforms
Due to the monitoring server’s security requirements and mission-critical nature, 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:
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 |
Hardware requirements
Both physical and disc space are needed by Zabbix.
The number of hosts and characteristics being watched determines how much disc space is needed.
Allowing at least a few GBs of space in the database is recommended if you wish to preserve a lengthy history of the monitored parameters.
Multiple connections to a database server are necessary for each Zabbix daemon process.
The database engine’s configuration determines how much room is set aside for the connection.
CPU Requirements
Depending on the number of monitored parameters and the database engine selected, Zabbix, particularly notably the Zabbix database, may take a large number of CPU resources.
Other hardware
Zabbix’s SMS notification capability requires a serial communication port and a serial GSM modem.
The USB-to-serial converter also functions.
Software Requirements
Modern web servers, top database engines, and the PHP scripting language are the foundation of Zabbix.
The need for mandatory requirements is constant. For the support of the particular function, optional requirements are required.
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. |
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. |
Frontend
Modern web servers, top database engines, and the PHP scripting language are the foundation of Zabbix.
The need for mandatory requirements is constant. For the support of the particular function, optional requirements are required.
The Zabbix frontend’s minimum supported screen width is 1200px.
The necessity for mandatory requirements is constant. For the support of the particular function, optional criteria are also required.
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. |
The following external frontend libraries are included with Zabbix:
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. |
Web browser on the client side
JavaScript and cookies both need to be enabled.
Supported browsers include the most recent stable versions of Apple Safari, Microsoft Edge, Mozilla Firefox, Google Chrome, and Opera.
Server/proxy
Mandatory requirements are always needed. For the support of the particular function, optional criteria are required.
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. |
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. |
Agent
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. |
Agent 2
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. |
Golang libraries
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 |
According to the definition of “indirect,” it is a library that the agent uses. Given that Zabbix makes use of the package-using library, it is necessary.
A place for big ideas.
Reimagine organizational performance while delivering a delightful experience through optimized operations.
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
Time synchronization
On a server running Zabbix, having accurate system time is crucial. The most well-known daemon for synchronizing the host’s time with other computers is ntpd. On all systems where Zabbix components are active, synchronized system time is highly advised. On a server running Zabbix, having accurate system time is crucial. The most well-known daemon for synchronizing the host’s time with other computers is ntpd. On all systems where Zabbix components are active, synchronized system time is highly advised.
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 |
Conclusion
The list of open ports for each component is as follows, and it applies to the default configuration. Zabbix is an open-source monitoring software program intended to keep an eye on network servers and applications and aid users in locating network performance bottlenecks. Superior data-gathering performance is offered by Zabbix, which scales to large environments. The tool offers several features to simplify tracking and troubleshooting threats and issues. Real-time sector monitoring is a solution for detecting network and server problems. Real-time sector monitoring is possible to identify network and server problems. Performance metrics are created by the Zabbix tool using data that has been collected and analyzed. The Zabbix utility employs encrypted communication to safeguard the data. The Zabbix utility is much less expensive, requires no additional installation steps, and is much easier to set up on the user’s computer. The tool offers a number of capabilities to make tracking and fixing threats and problems easier.