How to Install Zabbix on RHEL/CentOS and Debian/Ubuntu – Part 1

Zabbix is an Open Source, high-level enterprise software designed to monitor and keep track of networks, servers, and applications in real-time. Build in a server-client model, Zabbix can collect different types of data that are used to create historical graphics and output performance or load trends of the monitored targets.

The server has the ability to check standard networking services (HTTP, FTP, SMTP, IMAP, etc) without the need to install extra software on the monitored hosts.

However, in order to gather data and create statistics about local services or other specific system resources that run on remote instances, such as CPU, disks, internal system process, RAM, etc, you need to install and configure a Zabbix agent.

Following are the 4-article series about the Zabbix Monitoring application:

Part 1: Install Zabbix on Debian/Ubuntu and RHEL/CentOS/Fedora/Rocky Linux/AlmaLinux

This tutorial will focus on how to install the latest version of the Zabbix Server on Debian/Ubuntu and RHEL/CentOS /Fedora/Rocky Linux/AlmaLinux with MySQL/MariaDB backend database to store collected data, PHP and Apache Web Server as the mainly web interface.

Important: The given Zabbix instructions also work on all Debian derivatives and RedHat-based distros like RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux.

Step 1: Install Apache Web Server and PHP

1. First, update the software packages and then install Apache Web Server alongside PHP and its extensions in order to provide the web-backed functionality for Zabbix Server by issuing the following command.

--------------- On Debian/Ubuntu --------------- 
$ sudo apt update && sudo apt upgrade
$ sudo apt install apache2 php php-mysql php-mysqlnd php-ldap php-bcmath php-mbstring php-gd php-pdo php-xml libapache2-mod-php

--------------- On RHEL-based Distros ---------------
# yum update && yum upgrade
# yum -y install epel-release
# yum install httpd php php-mysqlnd php-ldap php-bcmath php-mbstring php-gd php-xml		

2. Next, you need to tune the PHP interpreter and adjust some values in order to run Zabbix Server. So, open Apache php.ini configuration file for editing by issuing the following command:

$ sudo nano /etc/php/7.X/apache2/php.ini 	[On Debian/Ubuntu] 
# vi /etc/php.ini				[On RHEL/CentOS/]

Now, search with CTRL+C and replace the following PHP values as it follows:

post_max_size = 16M
upload_max_filesize = 2M
max_execution_time 300
max_input_time = 300
memory_limit 128M
session.auto_start = 0
mbstring.func_overload = 0
date.timezone = Europe/Bucharest

Replace the date.timezone variable according to your server’s geographical location. A list of PHP-supported Timezones can be found here

3. After updating the PHP configuration file, restart Apache daemon to reflect changes by issuing the following command.

$ sudo systemctl restart apache2.service	 [On Debian/Ubuntu] 
# systemctl restart httpd.service		 [On RHEL/CentOS]

Step 2: Install MariaDB Database and Library

4. On the next step install the MariaDB database and MySQL development library from binary packages. As MariaDB installs on your system you will be asked to set a password for the database root user during installation (Only on Debian). Choose a strong password, repeat it and wait for the installation to finish.

$ sudo apt-get install mariadb-server mariadb-client libmysqld-dev	 [On Debian/Ubuntu] 
# yum install mariadb-server mariadb-client mariadb-devel	         [On RHEL/CentOS]
Set MySQL root Password
Set MySQL root Password

5. When the installation of Mariadb finishes, start and secure the database by issuing mysql_secure_installation command with system root privileges ( answer with yes for removing anonymous users, disable root login remotely, remove test database and access to it and apply all changes).

$ sudo systemctl start mariadb
$ sudo mysql_secure_installation
# systemctl start mariadb
# mysql_secure_installation

Use the below screenshot as a guide.

Secure MySQL Installation

6. The next requirement for Zabbix is setting up an RDBMS database. Log in to your LAMP stack database component (MySQL or MariaDB) and create a Zabbix database and the credentials required to manage the database, by issuing the following commands.

Make sure you replace the database name, user, and password to match your own settings.

# mysql -u root -p
MariaDB [(none)]> create database zabbixdb character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbixdb.* to 'zabbixuser'@'localhost' identified by 'password1';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit

Step 3: Install Zabbix Server

7. Now, start to install the Zabbix server and Zabbix PHP frontend application by adding the official Zabbix repositories to your system package manager by issuing the following commands with root privileges.

Install Zabbix on Debian

--------------- On Debian 11 --------------- 
$ sudo wget
$ sudo dpkg -i zabbix-release_5.4-1+debian11_all.deb
$ sudo apt update
$ sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent

--------------- On Debian 10 --------------- 
$ sudo wget
$ sudo dpkg -i zabbix-release_5.4-1+debian10_all.deb
$ sudo apt update
$ sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent

Install Zabbix on Ubuntu

--------------- On Ubuntu 20.04 --------------- 
$ sudo wget
$ sudo dpkg -i zabbix-release_5.4-1+ubuntu20.04_all.deb
$ sudo apt update
$ sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent

--------------- On Ubuntu 18.04 --------------- 
$ sudo wget
$ sudo dpkg -i zabbix-release_5.4-1+ubuntu18.04_all.deb
$ sudo apt update
$ sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent

Install Zabbix on RHEL-based Distros

--------------- On RHEL/CentOS 8 --------------- 
# rpm -Uvh
# dnf clean all
# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-agent

--------------- On RHEL/CentOS 7 ---------------
# rpm -Uvh
# dnf clean all
# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-agent

If you want to download and compile an older version, please visit Zabbix official Sourceforge repositories.

8. On the next step, restart the Apache HTTP server in order to apply the Zabbix configuration file installed for Apache.

$ sudo systemctl restart apache2   [On Debian/Ubuntu] 
# systemctl restart httpd     [On RHEL/CentOS] 
# setenforce 0                [Disable SELinux on RHEL/CentOS] 

Step 4: Configure Zabbix Server and Agent

9. Before configuring the server, first, import Zabbix’s initial database schema to the MySQL database. Import the schema against the database created for the Zabbix application, by issuing the below command.

$ sudo zcat /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz | mysql -u zabbixuser zabbixdb -p
# zcat /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz | mysql -u zabbixuser zabbixdb -p

10. On the next step, set up the Zabbix server by opening the main configuration file for editing with the following command.

$ sudo nano /etc/zabbix/zabbix_server.conf
# nano /etc/zabbix/zabbix_server.conf

In zabbix_server.conf file search and modify the following lines as presented in the below excerpt. Update the variables to reflect your own database settings.


11. Finally, save and close the Zabbix server configuration file by pressing Ctrl+o and Ctrl+x file and restarting the Zabbix daemon to apply changes by issuing the below command.

# systemctl restart zabbix-server.service

12. Next, configure the Zabbix Agent configuration file by updating the following lines. First, open the file for editing.

# nano /etc/zabbix/zabbix_agentd.conf 

Zabbix agent configuration file excerpt:


13. Save and close the Zabbix agent configuration file and restart Zabbix Agent to reflect changes by issuing the following command.

# systemctl restart zabbix-agent.service 

Step 5: Install and Configure Zabbix Frontend Interface

15. Now it’s time to install the Zabbix Server Frontend web interface. In order to accomplish this step open a browser and navigate to your server IP Address using HTTP or HTTPS protocol and the welcome screen should appear. Hit the Next button to move forward.

On the first welcome screen, just hit the Next step button to move to the new step of the installation process.

Zabbix Web Installer
Zabbix Web Installer

16. After a series of checks, if all pre-requires values are satisfied, hit the Next button to proceed further.

Zabbix Checks Pre-requisites
Zabbix Checks Pre-requisites

17. On the next step provide the settings for the MySQL database, hit the Test connection button to test MySQL connectivity, and move to the step by pressing the Next button.

Zabbix Database Settings
Zabbix Database Settings

18. Next, supply the Host (or IP Address) and the Port of the Zabbix server (use the host localhost and the port 10051 because Zabbix server is configured to run on the same host as the Zabbix frontend web interface in this tutorial) and a Name for Zabbix frontend installation. When you’re done hit Next to continue.

Zabbix Server Details
Zabbix Server Details

19. Next, check all the configurations parameters.

Zabbix Pre Installation Summary
Zabbix Pre Installation Summary

20. After the installation process completes, a congratulations message will appear in your browser. Hit on the Finish button to exit the Zabbix frontend installer.

Zabbix Installation Complete
Zabbix Installation Complete

21. Finally, navigate to your server IP address or domain name by appending /zabbix URL address and log in to the Zabbix web admin panel with the default credentials presented below.

Username: Admin
Password: zabbix
Zabbix Login
Zabbix Login

22. After you’ve logged in to the Zabbix admin panel, you can start to configure Zabbix and add new network resources to be monitored by the Zabbix server.

Zabbix Dashboard
Zabbix Dashboard

23. To change the Zabbix frontend admin account password, navigate to Administration -> Users –> User and hit on the Change password button and add your new password, as illustrated in the below screenshot. Finally, hit on the bottom Update button in order to save the admin account’s new password.

Zabbix Admin Password Change
Zabbix Admin Password Change

That’ll! The next series concerning the Zabbix monitoring system will discuss how to set up the server further using the web interface and how to install and configure Zabbix agents on different Linux distributions or even Windows systems.

Tutorial Feedback...
Was this article helpful? If you don't find this article helpful or found some outdated info, issue or a typo, do post your valuable feedback or suggestions in the comments to help improve this article...

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Support Us

We are thankful for your never ending support.

91 thoughts on “How to Install Zabbix on RHEL/CentOS and Debian/Ubuntu – Part 1”

  1. Hello Matei,

    I find a little spelling mistake through the guide:

    “MariaDB [(none)]> create database zabbixdb character set utf8 collate utf8_bin;”

    Thanks for detailed sharing and hope this helps.

  2. Good Day,

    Finally I found a direct tutorial and to the core of how to install this application so novel, after about 30 failed installation attempts of other pages, this was the only one that actually helped me.

    Thank you! I will be attentive to your forum!

  3. I just shared my experience Zabbix with CentOS 7. in case you not yet disabled firewall and selinux you need to some command for allow Zabbix and httpd work together as below:

    # firewall-cmd --zone=public --add-port=80/tcp --permanent
    # firewall-cmd --zone=public --add-port=10050/tcp --permanent
    # firewall-cmd --zone=public --add-port=10051/tcp --permanent
    # firewall-cmd --reload

    SELinux rule

    # setsebool -P httpd_can_network_connect on
    # setsebool -P httpd_can_connect_zabbix 1
    # setsebool -P zabbix_can_network 1

    and restart apache and zabbix server.

    if not like this you will see the message announce that;
    your zabbix server is not running….

    for who have problem the same as me.

  4. Dear Sir,
    please help me to solve this issue in CentOS7 how can i enabled this i am tired to resolve this issue.
    PHP bcmath off Fail
    PHP mbstring off Fail

  5. Hi! i’m senegalese and i speak english a little. But i confirm it’s work for me 100% on debian. Thank’s for this topic. Good luck for the next!

  6. I have followed step by step according to this instruction. But it is not working for Debian 8. I am getting an error message: Zabbix server is not running.

  7. hi guys
    installed successfully now i want know whats open port needed in the zabbix server and slave server added to zabbix?


Got something to say? Join the discussion.

Have a question or suggestion? Please leave a comment to start the discussion. Please keep in mind that all comments are moderated and your email address will NOT be published.