Zabbix Monitoring

Zabbix is a full-featured enterprise monitoring platform that covers servers, network devices, and applications. It provides active agents for servers, SNMP monitoring for network devices, and built-in alerting through email, Slack, PagerDuty, and others. Zabbix is heavier to operate than Prometheus/Grafana but covers a broader monitoring scope including network infrastructure and has better out-of-the-box templates for traditional server monitoring.

Zabbix architecture

Zabbix components:
  zabbix-server  — central monitoring server (collects data, evaluates triggers)
  zabbix-web     — web interface (PHP, requires Apache/Nginx + MySQL)
  zabbix-agent   — lightweight agent on monitored servers
  zabbix-proxy   — optional proxy for distributed monitoring

  Data flow:
  zabbix-agent (on server) → pushes metrics to → zabbix-server
  zabbix-server → evaluates → triggers → sends alerts
  Admin → configures via → zabbix-web

Installing Zabbix

# Install Zabbix 7.0 LTS on Ubuntu:
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_7.0-1+ubuntu22.04_all.deb
sudo apt update

sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent

# Set up database:
sudo mysql -e "CREATE DATABASE zabbix CHARACTER SET utf8mb4;"
sudo mysql -e "CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'ZabbixPass!42';"
sudo mysql -e "GRANT ALL ON zabbix.* TO 'zabbix'@'localhost';"
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix

# Configure /etc/zabbix/zabbix_server.conf:
# DBPassword=ZabbixPass!42
sudo systemctl enable --now zabbix-server zabbix-agent apache2

Adding hosts to monitor

# Install zabbix-agent on each server to monitor:
sudo apt install -y zabbix-agent
sudo nano /etc/zabbix/zabbix_agentd.conf

zabbix_agentd.conf key settings

Server=192.168.1.100        # IP of your Zabbix server
ServerActive=192.168.1.100  # For active checks
Hostname=webserver01        # Must match hostname in Zabbix web UI
sudo systemctl enable --now zabbix-agent

# In Zabbix web UI:
# Configuration > Hosts > Create Host
# Host name: webserver01
# Groups: Linux servers
# Agent interface: IP of webserver01
# Link template: "Linux by Zabbix agent"

Triggers and alerts

# Zabbix templates include pre-built triggers:
# "Linux CPU load average is too high" — fires when 15min avg > 1 per core
# "Free disk space is less than 20%" — configurable threshold
# "Host has been restarted" — detects unexpected reboots

# Configure email alerts:
# Administration > Media types > Email
# Enter SMTP server settings

# Assign to users:
# Administration > Users > irfan > Media > Add email

# Set notification escalation:
# Configuration > Actions > Trigger actions
# Step 1 (immediate): send to on-call
# Step 2 (if unacknowledged after 15min): send to manager

Conclusion

Zabbix's main advantage over Prometheus+Grafana is out-of-the-box agent-based monitoring with pre-built templates for hundreds of applications and network devices — you do not need to write alert rules from scratch. The main disadvantage is complexity: Zabbix is significantly harder to operate than Prometheus. For environments with 20+ servers and mixed infrastructure (servers, switches, UPS devices, printers), Zabbix's breadth makes it worth the operational cost. For cloud-native or container-heavy environments, Prometheus+Grafana is usually the better fit.

FAQ

Is Zabbix Monitoring important for Ubuntu administrators?+

Yes. It supports practical Ubuntu administration because it connects directly to server reliability, security, troubleshooting, or daily operations.

Should I practice this on a live server?+

Use a lab VM first. After you understand the command output and rollback path, apply the workflow carefully on real systems.

What should I do after reading this article?+

Run the practice commands, write down what each one shows, and continue to the next article in the Ubuntu roadmap.

Need help with Ubuntu administration?

Work directly with Muhammad Irfan Aslam for Ubuntu Server, Linux, cloud, Docker, DevOps, CI/CD, or infrastructure troubleshooting support.

Hire Me for Support