How to Install Zabbix Monitoring Tool on Ubuntu 22.04 LTS

Monitoring your infrastructure is a critical task for any DevOps engineer. Without effective monitoring, you run the risk of performance degradation, security vulnerabilities, and unexpected downtime. Zabbix, a powerful open-source monitoring tool, offers comprehensive real-time monitoring, alerting, and reporting capabilities. This guide provides step-by-step instructions on how to install and configure Zabbix on Ubuntu 22.04 LTS, enabling you to maintain control over your infrastructure and ensure optimal performance.


Prerequisites

Before you begin, make sure you have:

  • Administrative access to the server.
  • A basic understanding of Linux command-line tools.

Step 1: Install Dependencies

Zabbix requires certain packages to function properly. Start by updating your package list and installing essential dependencies:

sudo apt update && sudo apt install -y build-essential libssl-dev libpcre3-dev libxml2-dev zlib1g-dev gcc

These packages provide necessary libraries and tools for building and running Zabbix.


Step 2: Download and Extract Zabbix Source Code

Download the Zabbix source code from the official website:

wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.10.tar.gz
tar -xvf zabbix-6.0.10.tar.gz

Navigate to the extracted directory:

cd zabbix-6.0.10/

Step 3: Configure Zabbix Build

Run the configuration command to prepare Zabbix for installation:

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-openssl

This command specifies the installation prefix and includes options for MySQL database support, SNMP, cURL, and SSL.


Step 4: Build and Install Zabbix

Compile and install Zabbix using the following commands:

make
sudo make install

This process may take a few minutes as the source code is compiled and installed.


Step 5: Create the Initial Database and User

Zabbix requires a MySQL or MariaDB database. First, log in to MySQL and create a database for Zabbix:

mysql -u root -p
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Replace strong_password with a secure password of your choice.

Import the initial schema and data into the database:

zcat database/mysql/schema.sql.gz | mysql -u zabbix -p zabbix
zcat database/mysql/images.sql.gz | mysql -u zabbix -p zabbix
zcat database/mysql/data.sql.gz | mysql -u zabbix -p zabbix

Step 6: Configure Zabbix Server

Edit the zabbix_server.conf file to set the database connection:

sudo nano /usr/local/zabbix/etc/zabbix_server.conf

Update the following lines:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=strong_password

Save and close the file.


Step 7: Start and Enable Zabbix Services

Start the Zabbix server and agent services:

sudo systemctl start zabbix-server
sudo systemctl start zabbix-agent

Enable the services to start on boot:

sudo systemctl enable zabbix-server
sudo systemctl enable zabbix-agent

Step 8: Configure the Zabbix Frontend

Install and configure the Apache web server and PHP:

sudo apt install apache2 php php-mysql libapache2-mod-php -y

Copy the Zabbix frontend files to the web server’s document root:

sudo cp -r frontends/php /var/www/html/zabbix

Set the appropriate permissions:

sudo chown -R www-data:www-data /var/www/html/zabbix

Restart Apache:

sudo systemctl restart apache2

Access the Zabbix frontend by navigating to http://your-server-ip/zabbix in your web browser and complete the web-based installation.


Best Practices

  • Regular Updates: Ensure Zabbix and related packages are up-to-date to maintain security and stability.
  • Monitoring and Alerts: Configure notification channels and alerts to stay informed of potential issues.
  • Secure Access: Limit access to the Zabbix web interface using firewall rules and enable SSL/TLS for encrypted communications.

Troubleshooting

  • Database Connection Errors: Ensure the zabbix user has the correct permissions and that the database settings in zabbix_server.conf are accurate.
  • Service Not Starting: Check logs using sudo journalctl -u zabbix-server for any error messages.

For more details, refer to the Zabbix Documentation and community forums for additional support.


Conclusion

Congratulations! You have successfully installed and configured Zabbix on Ubuntu 22.04 LTS. With Zabbix, you can monitor your infrastructure in real-time and ensure proactive management of your systems.


Next Steps

  • Explore advanced configuration options for high-availability setups.
  • Integrate Zabbix with third-party tools for a comprehensive monitoring solution.
  • Experiment with Zabbix templates to monitor specific applications and services.