How to install and configure Zabbix on CentOS 7

Zabbix is an open-source monitoring software used for collecting metrics from various devices and systems such as networks devices, VM systems, Linux/Windows systems, and cloud services.

Zabbix is an open-source monitoring software used for collecting metrics from various devices and systems such as networks devices, VM systems, Linux/Windows systems, and cloud services. Zabbix can send notification alerts of issues in any monitored system.

In this tutorial, we shall provide you a guide on installing and configuring Zabbix on CentOS system. Before that let’s take a look at the prerequisites.


  • Apache web server
  • PHP with required extensions
  • MySQL/ MariaDB server

Installing Zabbix on CentOS

Login to Terminal as root and start firing up the commands below.

Step 1 – Disable SELinux

Open SELinux configuration and edit the file:

vim /etc/sysconfig/selinux

Change “SELINUX=enforcing” to  “SELINUX=disabled”

Save and exit the file. Then reboot the system.


Step 2 – Install and Configure Apache

Use the following commands:

yum -y install httpd

check service status.

systemctl status httpd.service

If Apache service is not running, start it manually.

systemctl start httpd.service

Enable httpd service on system boot.

systemctl enable httpd

Step 3 – Configure Needed Repositories

Install epel and remi repos.

yum -y install epel-release
yum install

Disable PHP 5 repositories and enable PHP 7.2 repo.

yum-config-manager --disable remi-php54
yum-config-manager --enable remi-php72

Step 4 – Install PHP

yum install php php-pear php-cgi php-common php-mbstring php-snmp php-gd php-pecl-mysql php-xml php-mysql php-gettext php-bcmath

Modify the PHP time Zone by editing the php.ini file.

vim /etc/php.ini

Uncomment the following line and add your time zone.

date.timezone = Australia/Sydney

Step 5 – Install MariaDB

yum --enablerepo=remi install mariadb-server

Start the MariaDB service.

systemctl start mariadb.service

Enable MariaDB on system boot.

systemctl enable mariadb

Run the following command to secure MariaDB.


Add a new root password and continue. Then it will ask a few questions. Type “Y” to agree to that.

MariaDB Secure Installation
MariaDB Secure Installation

Login to DB server and verify.

  mysql -u root -p

Step 6 – Create a Database for Zabbix

You can choose any name for the database in place of fosslinuxzabbix in the below command:

Create database fosslinuxzabbix;

Create a DB user and grant privileges.

create user 'zabbixuser'@'localhost' identified BY '@dfEr234KliT90';
grant all privileges on fosslinuxzabbix.* to zabbixuser@localhost ;

Flush privileges.

flush privileges;

Step 7 – Install Zabbix and needed dependencies

Adding Zabbix repository. Copy the latest download URL from the official website. Paste it in the below command appropriately.

rpm -ivh

Install Zabbix.

yum install zabbix-server-mysql  zabbix-web-mysql zabbix-agent zabbix-get

Zabbix Installation
Zabbix Installation

Step 8 –  Configure Zabbix

Change Time Zone by editing the Zabbix Apache configuration file.

vim /etc/httpd/conf.d/zabbix.conf

Uncomment the following line and add your Time Zone.

php_value date.timezone Australia/Sydney

PHP Parameters should look like as follows:

php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
php_value date.timezone Australia/Sydney

Restart HTTPD service.

systemctl restart httpd.service

Generally, Zabbix installation package gives SQL file which includes an initial schema and data for the Zabbix server with MySQL.

Change directory and go the Zabbix directory.

cd /usr/share/doc/zabbix-server-mysql-4.0.4/

Import the MySQL dump file.

zcat create.sql.gz | mysql -u zabbixuser -p fosslinuxzabbix

Import SQL Dump
Import SQL Dump

Now modify the Zabbix configuration file with Database details.

vim /etc/zabbix/zabbix_server.conf

Modify the following parameters


Then save and exit the file. Restart Zabbix service.

systemctl status zabbix-server.service

Enable Zabbix on system boot.

 systemctl enable zabbix-server.service

Modify firewall rules.

firewall-cmd --add-service={http,https} --permanent
firewall-cmd --add-port={10051/tcp,10050/tcp} --permanent
firewall-cmd --reload

Now restart httpd service.

systemctl restart httpd

Step 9 – Setup Zabbix

You can access Zabbix using following URL:

http://Server-Host-Name Or IP /zabbix/

You should see the welcome page.

Zabbix Welcome Page
Zabbix Welcome Page

Click Next.

Check Of Pre-Requisites
Check Of Pre-Requisites

Here you Zabbix will check installed PHP, MySQL/MariaDB versions and parameters, etc.

If you see any parameter failing, you have to modify it and refresh the page.

E.g.:- for PHP parameter you have to modify (/etc/php.ini) file. Click Next.

Configure DB Connection
Configure DB Connection

Add database details and click Next. Then you will see server details, and you can add any name for “Name”.

Zabbix Server Details
Zabbix Server Details

Click Next. You should see the Database details and server details.

Pre-installation Summary
Pre-installation Summary

Click Next to complete the installation.

Successfully Installed
Successfully Installed

Click finish to access the login page.

Login Page
Login Page

The default login name is “admin” and password is “zabbix”. You will go to the Zabbix Dashboard.

Dash Board
Dash Board

Step 10 – Monitor Servers with Zabbix Agent

Zabbix Agent collects the data from the client machine and sends them to the Zabbix Server.  We will install the Zabbix agent on the Ubuntu machine to monitor it.

Execute following commands to install the agent on Ubuntu 18.04 LTS. As usual, replace the URL with the latest from the official website.

dpkg -i zabbix-release_4.0-2+bionic_all.deb
apt update

Install agent.

apt-get install -y zabbix-agent

Now modify the agent configuration file.

vim  /etc/zabbix/zabbix_agentd.conf

Modify the following parameters. Replace IP and hostname with yours in the below command:


Save and exit the file.

Restart Zabbix agent.

systemctl restart zabbix-agent

Enable on system boot.

systemctl enable zabbix-agent

Step 11 – Add host to monitor on Zabbix server

Go to Configuration > Hosts > Create host.

Create Host
Create Host

Then you will get the interface as follows:

Add New Host
Add New Host

Add Hostname, Visible Name and agent interface IP. Select a group from the list. In our scenario, we are going to monitor the Ubuntu server. So we will select Linux servers from the list.

Select Group
Select Group

Select and go to Template Tab. Then click on the select button and select “Template OS Linux” from the list.

Select Template
Select Template

Click “add,” and it will list linked templates.

Add Template
Add Template

Click on the update button to update.

Step 12 – View Graphs

Go to Monitoring > Graphs. You can select needed group, host and graph to display the graphs.

CPU Graph
CPU Graph

Memory Usage
Memory Usage

Congratulations! You have successfully configured Zabbix server and added hosts to monitor. Let us know your feedback in the comments below.

Hey! I'm Darshana, a Linux / DevOps Engineer and also a contributor to FOSS Linux. I enjoy working on various kind of Linux distributions and cloud technologies. During my free time, I love to swim and hike across nature trails. Linux is my love and I'm here to share all my learnings with all of you! Hope you enjoyed reading my article.


  1. Install fails! even when disabling php5.4, it can’t get past dependencies:

    –> Processing Conflict: php-mysql-5.4.16-46.el7.x86_64 conflicts php-mysqlnd
    –> Finished Dependency Resolution
    Error: Package: php-pecl-mysql-1.0.0-0.17.20160812git230a828.el7.remi.7.2.x86_64 (remi-php72)
    Requires: php(api) = 20170718-64
    Installing: php-common-5.4.16-46.el7.x86_64 (base)
    php(api) = 20100412-64
    Error: php-mysql conflicts with php-mysqlnd-5.4.16-46.el7.x86_64
    Error: Package: php-pecl-mysql-1.0.0-0.17.20160812git230a828.el7.remi.7.2.x86_64 (remi-php72)
    Requires: php(zend-abi) = 20170718-64
    Installing: php-common-5.4.16-46.el7.x86_64 (base)
    php(zend-abi) = 20100525-64
    You could try using –skip-broken to work around the problem
    You could try running: rpm -Va –nofiles –nodigest

  2. this article guided the installation completely with php 5.4 errors. the remi repo helped to install php72 flawlessly and setup got successful.

  3. hi guys, there is always issues with php. As I change /etc/httpd/conf.d/zabbix.conf settings, it shows post_max_size, “max_execution_time”, “max_input_time” failed. As I change to any value and restarted httpd, it does not affect to config file and shows the old values. Could u pls help.

    • Is there any /etc/php/php.ini or /etc/php.ini file ?

      EDIT : to check which php.ini file is used, create a .php file with in it, browse it and look for Loaded configuration file, that should give you the right php.ini file to modify


Please enter your comment!
Please enter your name here




5 Ways to Check the Linux Version

When most people talk of Linux, they are always referring to a Linux distribution. However, this is not the case. Linux itself is a kernel which acts as a bridge between user applications and the hardware. When we talk of a Linux distribution, we refer to an operating system developed from the Linux kernel. A distribution comes with a package manager, pre-installed applications, a Desktop Environment, and several more features.

Getting Started with Linux Operating System

The Linux operating system brings forth a vibrant mix of features and security, making it the best alternative to macOS or Windows operating systems. In this post, we will give you a master guide on Getting started with Linux systems - taking you from a complete beginner to a level where you can begin testing the various Linux distributions available with much ease.

How to Create a Comprehensive Mail Server on Ubuntu

Postal is a free and open-source mail server used to send and receive emails. It comes loaded with tons of excellent features and functionalities, making it extremely popular among large organizations as well as in enterprise settings.

The 10 Best Linux Performance Monitoring Tools

Do you want to monitor the performance of your Linux system? Are you looking for some powerful performance monitoring tools to help you out? If you agree, it's your day as we have put together a detailed list of the ten best Linux performance monitoring tools.

How to Boot your Windows or Linux PC from a USB Drive

Sometime back, the process of installing an operating system required users to pop a bootable media disk into their DVD or CD drive and use it to boot the PC. But times have changed. Nowadays, the most common way of installing an OS is booting from a USB drive. The use of USB drives is further propelled by the current production of slim and lightweight laptops with no support for DVD/CD drives.

Python For Loop: Everything You Need to Know

Loops are one of the essential elements in any programming language, and Python is not an exception to it. Loops are used to repeat a statement or a block of statements multiple times. If there were no concept of loops in programming languages, we have to write each statement again and again for the number of times we want to execute it.


Buyers who wish to go for a machine that is based on Linux often show interest in Chromebooks due to the form factor and extended battery life capabilities. Although ChromeOS power these machines, users can still miss out on a more genuine Linux experience. For those who happen to agree, the new Lemur Pro by System76 might get some heads turning.
Linux is growing faster than ever. As per the latest report, there is a drop in the Windows 10 market share for the first time, and Linux's market share has improved to 2.87% this month. Most of the features in the list were rolled out in the Pop OS 20.04. Let's a detailed look into the new features, how to upgrade, and a ride through video.

How to install Android Studio on Ubuntu

Android Studio, like the name suggests, is a full-featured cross-platform IDE that enables you to develop Android applications to run on any android device. Based on JetBrains' IntelliJ IDEA, Android Studio comes installed with all the necessary features needed for Android development.

6 Best Linux Distros for Laptops

Whether buying a Linux pre-installed laptop or selecting a Linux distro for your existing laptop, there are many things to consider. Let's take you through some of the best Linux distros that are optimized for Laptops in this 2019 edition of the article. Read on.

The 10 Best Linux Network Monitoring Tools

Having total control over your network is essential to prevent programs from overusing your network resources and slowing down the overall performance. This is why you should install a network monitoring tool on your system, giving you a visual overview of everything that's happening on your network. Networking Tools are like swiss-knife for the system administrators for troubleshooting system issues.

Getting Started with Linux Operating System

The Linux operating system brings forth a vibrant mix of features and security, making it the best alternative to macOS or Windows operating systems. In this post, we will give you a master guide on Getting started with Linux systems - taking you from a complete beginner to a level where you can begin testing the various Linux distributions available with much ease.