How to Install and Configure Zabbix-4 on CentOS 7 and Install Zabbix Agents on CentOS 7, Ubuntu 18.04, SUSE 15, and Windows Server 2018."

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.

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 – Install yum-utils

# yum install yum-utils

Step 2 – Install and Configure Apache
Use the following commands:

# yum -y install httpd

Start Apache service.

# systemctl start httpd

Enable httpd service on system boot.

# systemctl enable httpd

Check service status.

# systemctl status httpd

Step 3 – Configure Needed Repositories

Install epel and remi repos.

# yum -y install epel-release
# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

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.

# vi /etc/php.ini
Uncomment the following line and add your time zone.

date.timezone = Asia/Kolkata

change the below setting
FROM:
post_max_size = 8M
max_execution_time = 30
max_input_time = 60

TO:
post_max_size = 16M
max_execution_time = 300
max_input_time = 300

Step 5 – Install MariaDB

# yum --enablerepo=remi install mariadb-server -y

Start the MariaDB service.

# systemctl start mariadb

Enable MariaDB on system boot.

# systemctl enable mariadb

Run the following command to secure MariaDB.

# mysql_secure_installation

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

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:

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;

Create a DB user and grant privileges.

MariaDB [(none)]> create user 'zabbix'@'localhost' identified BY 'redhat';

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost ;

Flush privileges.

MariaDB [(none)]> 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 https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

Install Zabbix.

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

Step 8 – Configure Zabbix

Change Time Zone by editing the Zabbix Apache configuration file.

# vi /etc/httpd/conf.d/zabbix.conf
Uncomment the following line and add your Time Zone.

php_value date.timezone Asia/Kolkata

Restart HTTPD service.

# systemctl restart httpd

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.43/

Import the MySQL dump file.

# zcat create.sql.gz | mysql -u zabbix -p zabbix

Now modify the Zabbix configuration file with Database details.

# vi /etc/zabbix/zabbix_server.conf

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=redhat

Then save and exit the file. Start Zabbix service.

# systemctl start zabbix-server

Enable Zabbix on system boot.

# systemctl enable zabbix-server

Now restart httpd service.

# systemctl restart httpd

Step 9 – Setup Zabbix

You can access Zabbix using following URL:

http://192.168.2.212/zabbix/

You should see the welcome page.

 



 

Click Next.

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

 



 

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

Zabbix Server Details

 



 

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

Pre-installation Summary

 



 

Click Next to complete the installation.

 



 

Successfully Installed
Click finish to access the login page.

Login Page

 



 

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

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.

# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-2+bionic_all.deb
# dpkg -i zabbix-release_4.0-2+bionic_all.deb
# apt update

Install agent.

# apt-get install -y zabbix-agent

Execute following commands to install the agent on Centos 7.

# rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

 

# yum install zabbix-agent -y

Now modify the agent configuration file.

# vi /etc/zabbix/zabbix_agentd.conf

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

Server=192.168.2.212
ServerActive=
192.168.2.212
Hostname=client-name

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
Then you will get the interface as follows:

 



 

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 Centos server. So we will select Linux servers from the list.

 



 

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

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

 

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


Memory Usage

 

 



 

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

 

 
To Enable Auto Discovery 
 
Monitoring large environments could be a nightmare without automation. Zabbix provides several ways of automating the management of such environments. Devices and elements of devices, such as file systems and network interfaces, can be added and removed automatically as they come and leave an organization.

Now modify the agent configuration file.

# vi /etc/zabbix/zabbix_agentd.conf

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

Server=192.168.2.212
ServerActive=192.168.2.212
Hostname=client-name
HostMetadata=LinuxServer

Click on Configuration -> Action --> Auto Registation --> Create Action
 
Action tab --> Name = LinuxServer --> New Condition : Host metadata = LinuxServer --> Add
 
 
Operation Tab: Operation : Add host, Add to host group, Link to template
 
 
 
After some time you can see the host visible in Zabbix portal.

 

How to enable encryption of data flow between Zabbix server and agent. 

We will enable encryption for lamp01.darole.org servers. 


First create folder to store the secret key. 

[root@lamp01 ~]# mkdir /home/zabbix
[root@lamp01 ~]# cd /home/zabbix/

Generate the secret key. 

[root@lamp01 zabbix]# openssl rand -hex 32 > secret.psk
[root@lamp01 zabbix]# cat secret.psk
7496dc82e63db9ab05279e64913f11a4aba749b5f039162cf85ca5e2cc948aa9

Give Zabbix user permission to access the key 

[root@lamp01 zabbix]# ls -lrt
total 4
-rw-r--r-- 1 root root 65 Nov 10 16:24 secret.psk
[root@lamp01 zabbix]# chown zabbix:zabbix secret.psk

Only Zabbix user and group can access the key 

[root@lamp01 zabbix]# ls -lh
total 4.0K
-rw-r--r-- 1 zabbix zabbix 65 Nov 10 16:24 secret.psk
[root@lamp01 zabbix]# chmod 640 secret.psk

Change the below configuration 

[root@lamp01 zabbix]# vi /etc/zabbix/zabbix_agentd.con
# TLSConnect=unencrypted         ### Comment the line 
TLSConnect=psk
# TLSAccept=unencrypted        ### Comment the line 
 TLSAccept=psk
# TLSPSKIdentity= ### Comment the line 
TLSPSKIdentity=lamp01.darole.org
# TLSPSKFile=                    ### Comment the line 
TLSPSKFile=/home/zabbix/secret.psk

Restart the zabbix agent to update the configuration file 

[root@lamp01 zabbix]# systemctl restart zabbix-agent

Now login zabbix portal go Configuration >>  Host >> lamp01.darole.org 
Go to Encryption tab and update the below.  


After few minute you will see the agent encryption is enabled. 




To configure email alerts in Zabbix, follow these steps:
  • Log in to the Zabbix portal. Go to the Administration tab, then click on Media types. Provide the SMTP server IP address, the SMTP HELO domain name, and enable the SMTP email address.

  • Go to Configuration and enable the action.

  • Check again in Administration tab.



 

 

 

No comments:

Post a Comment