Install Zabbix Server 3.4 on CentOS 7

In this KB, we will install the Zabbix Monitoring Server on CentOS 7.

Install the basics. Add this as install.sh on the server:

# nano install.sh
#!/bin/bash
yum update -y
yum install nano -y
yum install httpd -y
systemctl enable httpd.service
systemctl start httpd.service
yum install mariadb-server mariadb -y
systemctl enable mariadb
systemctl start mariadb
yum install php php-mysql php-pdo php-gd php-mbstring -y
yum install php php-pear -y
systemctl restart httpd.service
yum install firewalld -y
systemctl enable firewalld
systemctl start firewalld
sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Make executable:

# chmod +x install.sh

Run the script:

# ./install.sh

Installl Zabbix:

# rpm --import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX
# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get zabbix-sender zabbix-java-gateway -y

Create the database:

# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE zabbixdb CHARACTER SET utf8 COLLATE utf8_bin;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON zabbixdb.* TO zabbixuser@localhost IDENTIFIED BY "password";
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> quit

Import initial database:

# zcat /usr/share/doc/zabbix-server-mysql-3.4.7/create.sql.gz | mysql -uroot -p zabbixdb

edit database configuration in the zabbix server configuration file zabbix_server.conf

# nano /etc/zabbix/zabbix_server.conf

Specify the database name for zabbix , database user name and the password

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

Set SELinux settings and adjust Firewall
Having SELinux status enabled in enforcing mode, you need to execute the following command to enable successful connection of Zabbix frontend to the server

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

Restart Apache:

# systemctl start httpd

Start/Enable Zabbix

# systemctl enable zabbix-server 
# systemctl start zabbix-server
# systemctl enable zabbix-agent 
# systemctl start zabbix-agent

Configure Zabbix
Navigate to http://ip_address/zabbix or http://host_name/zabbix

Make sure that all software prerequisites are met.

Enter details for connecting to the database. Zabbix database must already be created.

Enter Zabbix server details.

Review a summary of settings.

Finish the installation.

Login:

The default user name is Admin and the password is zabbix .

Last thing to do is to enable your server zabbix to be monitored: go to Configuration -> Hosts. Select the host (zabbix server) and click “Disabled”