A Complete Comprehensive Guide to Install and Configure Zabbix 6.0 in Ubuntu 20.04/22.04 with MySQL Database on Apache Server

A Complete Comprehensive Guide to Install and Configure Zabbix 6.0 in Ubuntu 20.04/22.04 with MySQL Database on Apache Server
Table of Contents
- Introduction
- Prerequisite
- Step 1 — Installing and Configuring Apache2
- — Step 1.1 — Installing Apache2
- — Step 1.2 — Configuring Apache to host Zabbix
- Step 2 — Installing and Setting Up MySQL
- — Step 2.1 — Installing MySQL
- — Step 2.2 — Configuring MySQL Database
- Step 3 — Installing and Configuring Zabbix 6.0
- — Step 3.1 — Install Zabbix repository
- — Step 3.2 — Setting up Zabbix
- Step 4 — Mapping IP address to a Hostname
- — Step 4.1- For Windows
- — Step 4.2- For Linux
- — Step 4.2 — For Mac
- Step 5 — Configuring Zabbix Using the Web Interface
Introduction:
Zabbix, an open-source monitoring software, comprehensively tracks networks, servers, applications, and services within IT environments. It provides cost-effective and scalable solutions for diverse deployments, offering an adaptive alerting system for tailored notifications across multiple channels. Alongside robust visualization tools for data representation, Zabbix boasts automation capabilities to streamline operations efficiently.
This efficient platform minimizes system impact, empowering users with extensive customization options, having templates, user-defined parameters, and flexible triggers, suitable for any IT landscape. Its email-based alerts ensure swift responses to server issues. Covering networks, servers, VMs, and cloud services, Zabbix monitors crucial metrics such as network usage, CPU load, and disk space consumption, showcasing its comprehensive monitoring capabilities.
Prerequisite:
· Ubuntu 20.04 or 22.04
Step 1 — Installing and Configuring Apache2:
Step 1.1 — Installing Apache2:
Open terminal and run:sudo apt update
Install the Apache web server:sudo apt install apache2 -y
Allow incoming connections on the default Apache port through the firewall:sudo ufw allow ‘Apache’
Start the Apache web server:sudo systemctl start apache2
Enables Apache to start automatically on system boot:sudo systemctl enable apache2
Now verify if apache2 is working or not, so let’s try accessing its default webpage using our IP address:

Now let’s navigate our browser’s URL run http://[IP Address]. In my case it’s: http://192.168.50.10
:

Step 1.2 — Configuring Apache to host Zabbix:
Opens the zabbix.conf
file for editing using the nano
text editor:sudo nano /etc/apache2/sites-available/zabbix.conf
Place the following code in the zabbix.conf
file:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName zabbix
ServerAlias www.zabbix-server.com
DocumentRoot /var/www/zabbix
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Enable the zabbix.conf
site configuration file within Apache, allowing it to be served by the web server:
sudo a2ensite zabbix.conf
Disable the default site configuration file (000-default.conf
). This command stops Apache from serving the default page if no other sites are enabled:
sudo a2dissite 000-default.conf
Check the Apache configuration files for syntax errors or potential issues. This command is used to validate the configuration before applying changes:
sudo apache2ctl configtest
Restart the Apache web server, applying any configuration changes made. This ensures that the new settings take effect without requiring a full system reboot.
sudo systemctl restart apache2
Step 2 — Installing and Setting Up MySQL:
Step 2.1 — Installing MySQL:
Update the local database of available packages from the software repositories:sudo apt update
Install the MySQL server:
sudo apt install mysql-server -y
Start the MySQL service, allowing it to run:sudo systemctl start mysql.service
Enable the MySQL service to start automatically on system boot, ensuring it starts up with the system:
sudo systemctl enable mysql.service
Initiate the MySQL command-line interface (CLI):
mysql -u root -p

Step 2.2 — Configuring MySQL Database:
Run the following MySQL commands to create a database, user, and password, granting the user all privileges on the ‘zabbix’ database. Additionally, allow non-superusers to create functions, enabling specific functionalities:
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'password';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;

Step 3 — Installing and Configuring Zabbix 6.0:
Step 3.1 — Install Zabbix repository:
Download repository package from the Zabbix official repository:
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb
Install the Zabbix repository package:
sudo dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb
Update packages:
sudo apt update
Install Zabbix server, frontend, agent:
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent -y
Step 3.2 — Setting up Zabbix:
On Zabbix server host import initial schema and data. You will be prompted to enter your newly created password (‘password
’):
sudo zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

Disable log_bin_trust_function_creators option after importing database schema:
sudo mysql -uroot -p
set global log_bin_trust_function_creators = 0;
quit;

Add the password that you have setup in zabbix_server.conf
file:
sudo nano /etc/zabbix/zabbix_server.conf
DBPassword=password

Restart the zabbix-server
, zabbix-agent
, and apache2
services:systemctl restart zabbix-server zabbix-agent apache2
Enable zabbix-server
, zabbix-agent
, and apache2
services to start automatically on system boot :
systemctl enable zabbix-server zabbix-agent apache2
Step 4 — Mapping IP address to a Hostname:
Step 4 .1— For Windows:
Navigate to CMD and run as administrator. In the terminal run:
notepad C:\Windows\System32\drivers\etc\hosts
At the bottom of the notepad file, type:
[IP Address] www.zabbix.com zabbix.com
So, for me it’s:
192.168.50.10 www.zabbix-server.com zabbix-server.com
Save the file and exit.
Step 4.2— For Linux:
In the terminal run:
sudo nano /etc/hosts
At the bottom of the notepad file, type:
[IP Address] www.zabbix.com zabbix.com
So, for me it’s:
192.168.50.10 www.zabbix-server.com zabbix-server.com
Save the file and exit.
Step 4.3 — For Mac:
In the terminal run:
sudo nano /private/etc/hosts
at the bottom of the notepad file, type:
[IP Address] www.zabbix.com zabbix.com
So, for me it’s:
192.168.50.10 www.zabbix-server.com zabbix-server.com
Save the file and exit.
Step 5 — Configuring Zabbix Using the Web Interface:
In the browser’s URL, run:
http://zabbix-server.com/zabbix/setup.php

Click Next step and in Configure DB connection, verify all the current values are as required:

Click Next step and type the password you setup in your MySQL database:

Set your preferred Zabbix server name and time zone, then click Next step:

Check the Pre-installed summary
and then click Next step:

Congrats! You have successfully installed and configured Zabbix frontend:

Enter the Login credentials as follows:

And we’re done!
