How To Install Zabbix Server 4.x on CentOS 7 / RHEL 7
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.
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.
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
To begin using the Apache with the Zabbix server. Zabbix configuration file needs to be updated with TimeZone.
Update the below line with correct timezone. Find more time zones from the official site.
php_value date.timezone America/New_York
Install MySQL or MariaDB
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.
mysql -u root -p
Create a database with the following details.
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.
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
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.
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.
Follow the below steps to complete the Zabbix installation.
Click Next Step on Zabbix welcome page.
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.
Enter the Zabbix database name, DB user, and password. Click Next Step.
Mention the Zabbix server details, port number, and the name for Zabbix installation and then click Next step.
You will get a pre-installation summary like below. Click Next step.
Now, you have completed the installation of Zabbix. Click the Finish.
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.