How To Install Zabbix Server 4.x on CentOS 7 / RHEL 7

1

Zabbix is an enterprise-class monitoring solution for servers, network devices, and other components of your infrastructure.

Zabbix uses a client (Zabbix Agent) installed on the monitored client-server to collect the data. Also, it can monitor standard services such as e-mail, web service without installing a client on the monitored devices.

With Zabbix, you can monitor almost everything that is on your infrastructure. Since Zabbix is enterprise-ready, you can use Zabbix monitoring for environments ranging from small to larger.

Zabbix is released under the GPL license.

Features of Zabbix

  • Monitor the metrics like CPU, memory, disk space, network and process of servers (Requires Zabbix Agent)
  • Monitoring of VMware vCenter, VMware hypervisor, and virtual machines.
  • Automatically discover VMware hypervisor and virtual machines using low-level discovery.
  • Monitoring of MySQL, PostgreSQL, Oracle, and Microsoft SQL Server.
  • Zabbix has built-in Java application server monitoring.
  • Monitor network devices with SNMP.
  • Web services monitoring.
  • Hardware monitorings including temperature, fan speed, and disk state.

What’s New in Zabbix 4

  • Enhanced visualization
  • Time range selection with ease
  • Stay focused, avoid distraction
  • Same screen size, more details
  • Faster and more secure distributed monitoring
  • Better workflow for faster problem resolution
  • Tag-based permissions
  • Tag-based maintenance
  • Collect data over HTTP/HTTPS
  • Single sign-on

Detailed information can be found here.

In this guide, we will see how to install Zabbix Server 4.x on CentOS 7 / RHEL 7.

System Requirements

Hardware

Zabbix requires at least 128MB memory and 256MB of disk space to start with. However, the amount of memory depends on the number of hosts, and the parameters are being monitored.

2GB RAM and 2GB of disk space would be sufficient to monitor 500 hosts

Software

Apache: 1.3.12 or later
MySQL: 5.0.3 or 8.0.x / MariaDB: Latest
PHP: 5.4.0 or later

Install Zabbix

PHP and PHP Extensions

Install the required PHP extensions using the following command.

yum -y install php php-cli php-common php-devel php-pear php-gd php-mbstring php-mysql php-xml php-bcmath

Enable optional repository on RHEL 7.

yum-config-manager --enable rhel-7-server-optional-rpms

Configure Zabbix repository

Zabbix is not available in our base OS by default. So, we need to install the Zabbix repository configuration package to obtain Zabbix packages.

### Zabbix 4.0 (LTS) ###

rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm

### Zabbix 4.2 (Latest) ###

rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-2.el7.noarch.rpm

Install Zabbix Server

Use the following command to install the Zabbix server along with MySQL / MariaDB database support package on your system.

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

Timezone

To begin using the Apache with the Zabbix server. Zabbix configuration file needs to be updated with TimeZone.

vi /etc/httpd/conf.d/zabbix.conf

Update the below line with correct timezone. Find more time zones from the official site.

php_value date.timezone America/New_York

Database

Install MySQL or MariaDB

Install MariaDB or MySQL on your system.

READ: How To Install MariaDB On CentOS 7 / RHEL 7

OR

READ: How To Install MySQL On CentOS 7 / RHEL 7

For this post, I will use MariaDB database that comes with the operating system.

yum install -y mariadb-server mariadb

Create Zabbix database

Start the MariaDB service.

systemctl start mariadb

Login to MariaDB and create the database and user for our Zabbix installation.

If you are starting/setting up MariaDB server for the first time, then consider taking a look at Securing MariaDB, and this is to ensure the MariaDB instance has a root password set, no anonymous users, disallow root login remotely, and removing test database.
mysql -u root -p

Create a database with the following details.

DBName: zabbixdb
DBUser: zabbixuser
DBPassword: password

create database zabbixdb character set utf8 collate utf8_bin;

grant all privileges on zabbixdb.* to [email protected] identified by 'password';

quit;

Once you are done creating the database for Zabbix installation, then import initial schema and data to the newly created database.

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

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

Update Database Configuration

Edit the zabbix_server.conf file to set the database details.

vi /etc/zabbix/zabbix_server.conf

Make sure you set as follows.

DBHost=localhost
DBName=zabbixdb
DBUser=zabbixuser
DBPassword=password

Restart all the services.

systemctl restart zabbix-server zabbix-agent httpd

Enable the service to start automatically on system reboot.

systemctl enable zabbix-server zabbix-agent httpd mariadb

SELinux

If you have SELinux enabled on your server, you need to run the following command to enable successful connection of Zabbix web frontend to the server.

yum install -y policycoreutils-python

setsebool -P httpd_can_connect_zabbix on

Also, add a few custom rules.

curl https://support.zabbix.com/secure/attachment/53320/zabbix_server_add.te > zabbix_server_add.te

checkmodule -M -m -o zabbix_server_add.mod zabbix_server_add.te

semodule_package -m zabbix_server_add.mod -o zabbix_server_add.pp

semodule -i zabbix_server_add.pp

Thanks to catonrug blog.

Firewall

Configure the firewall to allow the Zabbix agent to reach the Zabbix server.

firewall-cmd --permanent --add-port=10050/tcp

firewall-cmd --permanent --add-port=10051/tcp

firewall-cmd --permanent --add-port=80/tcp

firewall-cmd --reload

Setup Zabbix via Web Installer

Open up your web browser and point it to the following URL.

http://your-ip-add-ress/zabbix/

Follow the below steps to complete the Zabbix installation.

Click Next Step on Zabbix welcome page.

Install Zabbix on CentOS 7 - Welcome Screen
Install Zabbix on CentOS 7 – Welcome Screen

This step verifies all the pre-requisites are met for Zabbix Installation. If there are any issues, this page will tell you what all the extension are missing. Click on Next Step.

Install Zabbix on CentOS 7 - Zabbix Installation Prechecks
Install Zabbix on CentOS 7 – Zabbix Installation Prechecks

Enter the Zabbix database name, DB user, and password. Click Next Step.

Install Zabbix on CentOS 7 - Database Configuration
Install Zabbix on CentOS 7 – Database Configuration

Mention the Zabbix server details, port number, and the name for Zabbix installation and then click Next step.

Install Zabbix on CentOS 7 - Zabbix Server Details
Install Zabbix on CentOS 7 – Zabbix Server Details

You will get a pre-installation summary like below. Click Next step.

Install Zabbix on CentOS 7 - Zabbix Pre-installation Summary
Install Zabbix on CentOS 7 – Zabbix Pre-installation Summary

Now, you have completed the installation of Zabbix. Click the Finish.

Install Zabbix on CentOS 7 - Zabbix Installation Completed
Install Zabbix on CentOS 7 – Zabbix Installation Completed

Once after you clicked on Finish, the installer will redirect you to the Zabbix web console.

Access Zabbix Dashboard

Log in with the Zabbix default username and password.

Username: Admin.

Password: zabbix.

Username is case sensitive.
Install Zabbix on CentOS 7 - Zabbix Login Screen
Install Zabbix on CentOS 7 – Zabbix Login Screen

Zabbix Dashboard:

Install Zabbix on CentOS 7 - Zabbix Monitoring Dashboard
Install Zabbix on CentOS 7 – Zabbix Monitoring Dashboard

Conclusion

That’s All. Now, you can proceed to install Zabbix Agent and then add client node to Zabbix server for monitoring.

You might also like