Zabbix 8.0 LTS – instructions for installation in 5 minutes

What awaits us?

In this guide, we will show you how to install and configure the latest Zabbix version 8.0 with PostgreSQL 18 and TimescaleDB in just five minutes.

Operating System Selection

The guide includes instructions for RHEL platforms version 10, where you may only need to adjust the repositories if necessary. The Debian guide is prepared for version 13, which is currently the latest supported version.

Alma/CentOS/RHEL/Rocky 10
Debian 13

Also select the web server you want to install:

Before we start

For the purposes of this example, we will first switch SELinux to Permissive mode.

If you plan to permanently disable SELinux, you can do so by editing the configuration file. However, we recommend that you consider learning how to work with SELinux and take advantage of its security benefits. For detailed information on how to properly configure and monitor SELinux, see our separate article.

setenforce 0

PostgreSQL Installation

In the first step, we will install the PostgreSQL repositories.

dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-10-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Next, we will install PostgreSQL, in this case, the currently supported version 18.

dnf install -y postgresql18-server

We will initialize the database and configure it to start automatically.

/usr/pgsql-18/bin/postgresql-18-setup initdb
systemctl enable postgresql-18 --now

Installation of Zabbix Server and Its Components

The database is now installed, so we can proceed with installing the Zabbix server and all its components.

First, we will exclude any installation packages related to Zabbix from the EPEL repository, assuming it is installed.

We do this by adding the following line to the end of the /etc/yum.repos.d/epel.repo file:

[epel]
...
excludepkgs=zabbix*

We will add the Zabbix repositories and clear the installation cache.

rpm -Uvh https://repo.zabbix.com/zabbix/8.0/release/rocky/10/noarch/zabbix-release-latest.el10.noarch.rpm
dnf clean all

And we will install all the necessary Zabbix components.

In this case, we will use Zabbix Agent 2 as the primary monitoring agent, which we recommend because it offers significantly more functionality.

dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-apache-conf zabbix-sql-scripts zabbix-agent2 zabbix-web-service wget nano

Database Initialization

First, we will create a database user for Zabbix. You will be prompted to set its access password.

cd /tmp
sudo -u postgres createuser --pwprompt zabbix

At this point, we can import the default schema and data. You will again be prompted to enter the password.
Here, use the password from the previous step.

sudo -u postgres createdb -O zabbix zabbix
zcat /usr/share/zabbix/sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix

Firewall Configuration

Finally, we will allow the ports necessary for the operation of the Zabbix server on the firewall.

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --reload

TimescaleDB Installation

TimescaleDB Community Edition is a PostgreSQL extension that also includes features under the Timescale License (TSL), including the historical data compression used by Zabbix. Packages built only under the Apache 2.0 license do not include these features. We therefore use the official TimescaleDB (Tiger Data) repository, which provides Community packages for EL 10 and PostgreSQL 18.

tee /etc/yum.repos.d/timescale_timescaledb.repo <<EOL
[timescale_timescaledb]
name=timescale_timescaledb
baseurl=https://packagecloud.io/timescale/timescaledb/el/$(rpm -E %{rhel})/\$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
EOL

Install TimescaleDB for PostgreSQL 18, its loader and the timescaledb-tools package. This package contains timescaledb-tune, which we will use in the next step to prepare the PostgreSQL configuration for operation with TimescaleDB:

dnf install timescaledb-2-postgresql-18 timescaledb-2-loader-postgresql-18 timescaledb-tools

In this procedure, --max-conns=125 sets the PostgreSQL limit to 125 concurrent connections. This is a starting value for a typical installation; the appropriate limit depends on connections used by Zabbix processes, the frontend and other clients. Leave capacity for database administration as well.

If the available connections are insufficient, PostgreSQL reports messages such as too many clients already or remaining connection slots are reserved; connection errors may also appear in the Zabbix server log. Adjust the limit according to the workload and available memory, then restart PostgreSQL. A higher limit is not automatically better: it increases resource requirements.

The timescaledb-tune utility recommends PostgreSQL settings based on the available memory and CPUs. It adjusts settings such as memory parameters and write behaviour, providing an initial configuration for operation with TimescaleDB.

The wizard finds the PostgreSQL configuration file, creates a backup and also offers to add the timescaledb library to shared_preload_libraries.

Review the proposed changes before accepting suitable values with y. If PostgreSQL shares the server with Zabbix or other applications, leave enough memory for them; automatic recommendations still need to be adapted to the environment.

timescaledb-tune --pg-config /usr/pgsql-18/bin --max-conns=125
timescaledb-tune output – Zabbix 8.0, AlmaLinux 10

Next, restart the PostgreSQL system service:

systemctl restart postgresql-18.service

All that remains is to create and activate TimescaleDB itself:

Note: During development, the path changed from the original /usr/share/zabbix-sql-scripts/postgresql/timescaledb/schema.sql to the new /usr/share/zabbix/sql-scripts/postgresql/timescaledb/schema.sql.

echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix
cat /usr/share/zabbix/sql-scripts/postgresql/timescaledb/schema.sql | sudo -u zabbix psql zabbix

Zabbix Server Configuration

Open the Zabbix server configuration file located at:

nano /etc/zabbix/zabbix_server.conf

Set AllowUnsupportedDBVersions=1 before the first startup. New TimescaleDB versions are often released before Zabbix adds them to its supported range. Without this setting, Zabbix may refuse to start because the version is too new, including after a later TimescaleDB upgrade.

Adjust the following parameters in the configuration file. Set DBPassword to the database user password from the previous step:

...
DBPassword=password
AllowUnsupportedDBVersions=1
StartReportWriters=1
WebServiceURL=http://localhost:10053/report
...

In the next step, we will configure all language packages for the Zabbix frontend:

dnf install glibc-langpack-en glibc-langpack-cs glibc-langpack-sk glibc-langpack-fr glibc-langpack-de glibc-langpack-es glibc-langpack-it glibc-langpack-zh glibc-langpack-pt glibc-langpack-da glibc-langpack-nb glibc-langpack-pl glibc-langpack-tr glibc-langpack-he glibc-langpack-ja glibc-langpack-ko glibc-langpack-ru glibc-langpack-uk glibc-langpack-ca glibc-langpack-ka glibc-langpack-vi glibc-langpack-uz glibc-langpack-lv

Finally, we restart all related services and configure them to start automatically at boot:

systemctl restart zabbix-server zabbix-web-service zabbix-agent2 httpd php-fpm
systemctl enable zabbix-server zabbix-web-service zabbix-agent2 httpd php-fpm

To verify that the Zabbix server has started correctly, we can, among other things, check its log file:

less /var/log/zabbix/zabbix_server.log

Possible issues: TimescaleDB version

For example, the failure appears in the log as follows:

 16402:20261004:104219.739 Unsupported DB! timescaledb version 23002 is newer than 22999
 16402:20261004:104219.739 TimescaleDB version is too new. Recommended version is up to TimescaleDB Community Edition 2.29.x.
 16402:20261004:104219.742 Zabbix Server stopped. Zabbix 8.0.0rc1 (revision dd0d9c26a3a).

If you skipped AllowUnsupportedDBVersions in the main configuration, or Zabbix will not start after a TimescaleDB upgrade, check the log above. If it reports TimescaleDB version is too new, adjust the settings in /etc/zabbix/zabbix_server.conf:

Open the configuration file:

nano /etc/zabbix/zabbix_server.conf

Set the following parameter:

AllowUnsupportedDBVersions=1

Save the file and restart the Zabbix server:

systemctl restart zabbix-server

Then check /var/log/zabbix/zabbix_server.log again. Allowing an unsupported version addresses this specific startup check; other database errors must be addressed according to their messages.

less /var/log/zabbix/zabbix_server.log

Zabbix Frontend Configuration

In your browser, open the target URL where Zabbix is running, for example, http://192.168.0.50/zabbix. You will be greeted by the initial installation wizard.

After selecting the default language, click Next step to proceed to the page that checks the minimum requirements.

Welcome – Zabbix 8.0, AlmaLinux 10

If the check is successful, click Next step to proceed to the next page where the database connection settings are configured.

Check of prerequisites – Zabbix 8.0, AlmaLinux 10

Here, fill in only the Password field for database access; no other changes are necessary.

After entering the password, click Next step again.

Database connection – Zabbix 8.0, AlmaLinux 10

On the next page with basic settings, fill in the server name and time zone, then click Next step to proceed to the configuration summary.

Server and time zone settings – Zabbix 8.0, AlmaLinux 10

In this summary, review all the entered values, and click Next step to complete the installation.

Pre-installation summary – Zabbix 8.0, AlmaLinux 10

Now, click the Finish button to proceed to the login screen.

Installation complete – Zabbix 8.0, AlmaLinux 10

After successfully logging in with the previously entered credentials, you can start using the latest Zabbix version 8.0 (Admin/zabbix).

Sign-in – Zabbix 8.0, AlmaLinux 10

And this is what the initial dashboard of the new Zabbix 8.0 looks like:

Zabbix 8.0 dashboard with initMAX menu and branding – AlmaLinux 10

Zabbix Reporting Configuration

To ensure fully functional reporting with all its enhancements, we first need to install Google Chrome.

Use the following command to download the installation package and install it:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
dnf localinstall google-chrome-stable_current_x86_64.rpm

In the next step, we will update the “Frontend URL” parameter in the Zabbix frontend to the current valid value. This setting can be found here:

For this installation, use http://192.168.0.50/zabbix; replace the IP address with your Zabbix address.

Administration -> General -> Other

An example of this configuration can be seen in the image below.

Zabbix 8.0 reporting settings with initMAX branding – AlmaLinux 10

Installation of Dependencies

apt install sudo gpg curl wget

PostgreSQL Installation

In the first step, we will install the PostgreSQL repositories and disable the default system PostgreSQL repositories. When prompted with the message:
‘This script will enable the PostgreSQL APT repository on apt.postgresql.org on
your system. The distribution codename used will be trixie-pgdg.’

press Enter to continue and confirm the installation from the official repository.

apt install -y postgresql-common
/usr/share/postgresql-common/pgdg/apt.postgresql.org.sh

Next, we will install PostgreSQL, in this case, the currently supported version 18.

apt -y install postgresql-18

Starting PostgreSQL and configuring it to start automatically at system boot.

systemctl enable postgresql --now

Installation of Zabbix Server and Its Components

The database is now installed, so we can proceed with the installation of the Zabbix server and all its components.

We will add the Zabbix repositories and clear the installation cache.

wget https://repo.zabbix.com/zabbix/8.0/release/debian/pool/main/z/zabbix-release/zabbix-release_latest_8.0+debian13_all.deb
dpkg -i zabbix-release_latest_8.0+debian13_all.deb
apt update

We will install all the necessary Zabbix components.

In this case, we will use Zabbix Agent 2 as the primary monitoring agent, which we recommend because it offers significantly more functionality.

apt install zabbix-server-pgsql zabbix-frontend-php php8.4-pgsql zabbix-apache-conf zabbix-sql-scripts zabbix-agent2 zabbix-web-service

Database Initialization

First, we will create a database user for Zabbix. During the process, we will be prompted to enter its access password. Then, we will create an empty database and set the appropriate permissions for it.

sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix

At this point, we are ready to import the default schema and data. We will again be prompted to enter the password.

Here, we will use the password from the previous step.

zcat /usr/share/zabbix/sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix

TimescaleDB Installation

TimescaleDB Community Edition is a PostgreSQL extension that also includes features under the Timescale License (TSL), including the historical data compression used by Zabbix. Packages built only under the Apache 2.0 license do not include these features. We therefore use the official TimescaleDB (Tiger Data) repository, which provides Community packages for Debian 13 and PostgreSQL 18.

echo "deb https://packagecloud.io/timescale/timescaledb/debian/ $(lsb_release -c -s) main" | sudo tee /etc/apt/sources.list.d/timescaledb.list
wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/timescaledb.gpg

Install TimescaleDB for PostgreSQL 18, its loader and the timescaledb-tools package. This package contains timescaledb-tune, which we will use in the next step to prepare the PostgreSQL configuration for operation with TimescaleDB:

apt update
apt install timescaledb-2-postgresql-18 timescaledb-2-loader-postgresql-18 timescaledb-tools

In this procedure, --max-conns=125 sets the PostgreSQL limit to 125 concurrent connections. This is a starting value for a typical installation; the appropriate limit depends on connections used by Zabbix processes, the frontend and other clients. Leave capacity for database administration as well.

If the available connections are insufficient, PostgreSQL reports messages such as too many clients already or remaining connection slots are reserved; connection errors may also appear in the Zabbix server log. Adjust the limit according to the workload and available memory, then restart PostgreSQL. A higher limit is not automatically better: it increases resource requirements.

The timescaledb-tune utility recommends PostgreSQL settings based on the available memory and CPUs. It adjusts settings such as memory parameters and write behaviour, providing an initial configuration for operation with TimescaleDB.

The wizard finds the PostgreSQL configuration file, creates a backup and also offers to add the timescaledb library to shared_preload_libraries.

Review the proposed changes before accepting suitable values with y. If PostgreSQL shares the server with Zabbix or other applications, leave enough memory for them; automatic recommendations still need to be adapted to the environment.

timescaledb-tune --pg-config /usr/bin --max-conns=125
timescaledb-tune output – Zabbix 8.0, Debian 13

Next, we restart the PostgreSQL system service:

systemctl restart postgresql

All that remains is to create and activate TimescaleDB itself:

The TimescaleDB SQL schema is supplied by the zabbix-sql-scripts package. In Zabbix 8.0 it is located at /usr/share/zabbix/sql-scripts/postgresql/timescaledb/schema.sql.

echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix
cat /usr/share/zabbix/sql-scripts/postgresql/timescaledb/schema.sql | sudo -u zabbix psql zabbix

Zabbix Server Configuration

Open the Zabbix server configuration file located at:

nano /etc/zabbix/zabbix_server.conf

Set AllowUnsupportedDBVersions=1 before the first startup. New TimescaleDB versions are often released before Zabbix adds them to its supported range. Without this setting, Zabbix may refuse to start because the version is too new, including after a later TimescaleDB upgrade.

Adjust the following parameters in the configuration file. Set DBPassword to the database user password from the previous step:

...
DBPassword=password
AllowUnsupportedDBVersions=1
StartReportWriters=1
WebServiceURL=http://localhost:10053/report
...

In the next step, we will configure the language packages for the Zabbix frontend. You can choose only the ones you need or enable all of them.

apt install locales
sed -i '/# en_US.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# en_GB.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# cs_CZ.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# sk_SK.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# fr_FR.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# de_DE.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# es_ES.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# it_IT.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# zh_CN.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# pt_PT.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# pt_BR.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# da_DK.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# nb_NO.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# pl_PL.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# tr_TR.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# he_IL.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# ja_JP.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# ko_KR.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# ru_RU.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# uk_UA.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# ca_ES.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# ka_GE.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# uz_UZ.UTF-8 UTF-8/s/^# //' /etc/locale.gen
sed -i '/# vi_VN UTF-8/s/^# //' /etc/locale.gen
sed -i '/# lv_LV.UTF-8 UTF-8/s/^# //' /etc/locale.gen
locale-gen

Finally, we will restart all related services and configure them to start automatically at boot:

systemctl restart zabbix-server zabbix-web-service zabbix-agent2 apache2
systemctl enable zabbix-server zabbix-web-service zabbix-agent2 apache2

To verify that the Zabbix server has started correctly, we can, among other things, check its log file:

less /var/log/zabbix/zabbix_server.log

Possible issues: TimescaleDB version

For example, the failure appears in the log as follows:

 16402:20261004:104219.739 Unsupported DB! timescaledb version 23002 is newer than 22999
 16402:20261004:104219.739 TimescaleDB version is too new. Recommended version is up to TimescaleDB Community Edition 2.29.x.
 16402:20261004:104219.742 Zabbix Server stopped. Zabbix 8.0.0rc1 (revision dd0d9c26a3a).

If you skipped AllowUnsupportedDBVersions in the main configuration, or Zabbix will not start after a TimescaleDB upgrade, check the log above. If it reports TimescaleDB version is too new, adjust the settings in /etc/zabbix/zabbix_server.conf:

Open the configuration file:

nano /etc/zabbix/zabbix_server.conf

Set the following parameter:

AllowUnsupportedDBVersions=1

Save the file and restart the Zabbix server:

systemctl restart zabbix-server

Then check /var/log/zabbix/zabbix_server.log again. Allowing an unsupported version addresses this specific startup check; other database errors must be addressed according to their messages.

less /var/log/zabbix/zabbix_server.log

Zabbix Frontend Configuration

In your browser, open the target URL where Zabbix is running, for example, http://192.168.0.50/zabbix. You will be greeted by the initial installation wizard.

After selecting the default language, click Next step to proceed to the page that checks the minimum requirements.

Welcome – Zabbix 8.0, Debian 13

If the check is successful, we can click Next step to proceed to the next page with the database connection settings.

Check of prerequisites – Zabbix 8.0, Debian 13

Here, fill in only the Password field for database access; no other changes are necessary.

After entering the password, click Next step again.

Database connection – Zabbix 8.0, Debian 13

On the next page with basic settings, fill in the server name and time zone, then click Next step to proceed to the configuration summary.

Server and time zone settings – Zabbix 8.0, Debian 13

In this summary, review all the entered values, and click Next step to complete the installation.

Pre-installation summary – Zabbix 8.0, Debian 13

Now, click the Finish button to proceed to the login screen.

Installation complete – Zabbix 8.0, Debian 13

After successfully logging in with the previously entered credentials, you can start using the latest Zabbix version 8.0 (Admin/zabbix).

Sign-in – Zabbix 8.0, Debian 13

And this is what the initial dashboard of the new Zabbix 8.0 looks like:

Zabbix 8.0 dashboard with initMAX menu and branding – Debian 13

Zabbix Reporting Configuration

To ensure fully functional reporting with all its enhancements, we first need to install Google Chrome.

Use the following command to download the installation package and install it:

curl -fSsL https://dl.google.com/linux/linux_signing_key.pub | sudo gpg --dearmor | sudo tee /usr/share/keyrings/google-chrome.gpg >> /dev/null
echo deb [arch=amd64 signed-by=/usr/share/keyrings/google-chrome.gpg] http://dl.google.com/linux/chrome/deb/ stable main | sudo tee /etc/apt/sources.list.d/google-chrome.list
apt update
apt install google-chrome-stable

In the next step, we will update the “Frontend URL” parameter in the Zabbix frontend to the current valid value. This setting can be found here:

For this installation, use http://192.168.0.50/zabbix; replace the IP address with your Zabbix address.

Administration -> General -> Other

An example of this configuration can be seen in the image below.

Zabbix 8.0 reporting settings with initMAX branding – Debian 13

Finishing Touches

  • Verify that the Zabbix server and database server are running correctly and have the correct version.

Support for Item Browser

All the necessary steps can be found in a separate guide on our wiki.

Custom Rebranding

All the necessary steps can be found in a dedicated guide on our wiki.

×Shopping Cart

Your cart is empty.