Install Zabbix 7.4 Docker Compose
Berikut adalah panduan lengkap untuk menginstal Zabbix 7.4 menggunakan Docker Compose di Ubuntu 22.04 LTS, mulai dari awal hingga login ke web interface Zabbix. Saya akan menjelaskan langkah-langkah secara detail, termasuk prasyarat dan konfigurasi, berdasarkan informasi resmi dari Zabbix dan praktik terbaik untuk Docker.
Requirement
Sebelum memulai, pastikan Anda memiliki:
- Server Ubuntu 22.04 LTS yang sudah terinstall.
- Akses root atau hak sudo untuk menjalankan perintah instalasi.
- Koneksi internet untuk mengunduh paket dan image Docker.
- Spesifikasi minimum:
- RAM: Minimal 2 GB (disarankan 4 GB atau lebih untuk performa optimal).
- CPU: Minimal 2 core.
- Penyimpanan: Minimal 10 GB untuk database dan data Zabbix.
- Port yang dibutuhkan:
- 80/TCP atau 443/TCP untuk web interface.
- 10051/TCP untuk Zabbix server (trapper).
- 10050/TCP untuk Zabbix agent (opsional, jika menggunakan agent).
- 5432/TCP untuk PostgreSQL (jika menggunakan PostgreSQL sebagai database).
Langkah-langkah Instalasi
Langkah 1: Update Sistem dan Install Docker serta Docker Compose
- Update sistem Ubuntu:
- Jalankan perintah berikut untuk memastikan sistem Anda menggunakan paket terbaru:
-
sudo apt update && sudo apt upgrade -y
- Install Docker:
- Ikuti langkah-langkah untuk menginstal Docker Engine:
-
# Install dependensi yang diperlukan sudo apt install -y apt-transport-https ca-certificates curl software-properties-common # Tambahkan GPG key untuk repositori Docker curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # Tambahkan repositori Docker echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Update package dan install Docker sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io
- Verifikasi instalasi Docker:
- Pastikan Docker berjalan dengan baik:
-
sudo systemctl status docker docker --version
- Install Docker Compose:
- Docker Compose digunakan untuk mengelola multi-container Zabbix. Instal versi terbaru:
-
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
- Verifikasi instalasi Docker Compose:
-
docker-compose --version
-
- Tambahkan pengguna ke grup Docker (opsional, untuk menjalankan Docker tanpa sudo):
-
sudo usermod -aG docker $USER newgrp docker
-
Langkah 2: Siapkan Docker Compose untuk Zabbix
Zabbix menyediakan file Docker Compose resmi di repositori GitHub mereka. Kita akan menggunakan file berbasis PostgreSQL, karena ini adalah konfigurasi yang umum digunakan dan didukung dengan baik untuk Zabbix 7.4.
- Buat direktori proyek:
-
mkdir zabbix-docker cd zabbix-docker
-
- Unduh file Docker Compose dari repositori Zabbix:
- Zabbix menyediakan file docker-compose.yaml untuk berbagai konfigurasi. Untuk Zabbix 7.4 dengan PostgreSQL dan Nginx, unduh file berikut:
-
wget https://raw.githubusercontent.com/zabbix/zabbix-docker/master/docker-compose_v3_ubuntu_pgsql_latest.yaml -O docker-compose.yaml
- Unduh file environment variabel:
- File .env diperlukan untuk mengatur variabel seperti nama pengguna dan kata sandi database. Unduh file lingkungan yang sesuai:
-
wget https://raw.githubusercontent.com/zabbix/zabbix-docker/master/env_vars/.env_db_pgsql -O .env_db_pgsql wget https://raw.githubusercontent.com/zabbix/zabbix-docker/master/env_vars/.env_srv -O .env_srv wget https://raw.githubusercontent.com/zabbix/zabbix-docker/master/env_vars/.env_web -O .env_web
- Buat file .env utama:
- Gabungkan variabel lingkungan ke dalam satu file .env untuk kemudahan konfigurasi. Buat file .env :
-
nano .env - Tambahkan konfigurasi berikut (sesuaikan kata sandi dan parameter sesuai kebutuhan):
-
POSTGRES_USER=zabbix POSTGRES_PASSWORD=strong_password_123 POSTGRES_DB=zabbix ZBX_SERVER_HOST=zabbix-server ZBX_SERVER_NAME="Zabbix Server" ZBX_WEBSERVER_PORT=8080 - POSTGRES_USER: Nama pengguna untuk database PostgreSQL.
- POSTGRES_PASSWORD: Kata sandi untuk database (ganti dengan kata sandi yang kuat).
- POSTGRES_DB: Nama database untuk Zabbix.
- ZBX_SERVER_HOST: Nama host Zabbix server.
- ZBX_SERVER_NAME: Nama yang ditampilkan di web interface.
- ZBX_WEBSERVER_PORT: Port untuk web interface (default 8080, ubah ke 80 atau 443 jika diperlukan).
Simpan dan keluar (Ctrl+O, Enter, Ctrl+X).
Langkah 3: Konfigurasi Docker Compose
File docker-compose.yaml mendefinisikan layanan Zabbix, termasuk server, web interface, database, dan agent (opsional). Berikut adalah contoh file docker-compose.yaml untuk Zabbix 7.4 dengan PostgreSQL dan Nginx:
version: '3.8'
services:
postgres-server:
image: postgres:15
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
volumes:
- ./zbx_env/var/lib/postgresql/data:/var/lib/postgresql/data
restart: unless-stopped
zabbix-server:
image: zabbix/zabbix-server-pgsql:ubuntu-7.4-latest
environment:
- DB_SERVER_HOST=postgres-server
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
- ZBX_SERVER_HOST=${ZBX_SERVER_HOST}
depends_on:
- postgres-server
ports:
- "10051:10051"
volumes:
- ./zbx_env/etc/zabbix:/etc/zabbix
- ./zbx_env/var/lib/zabbix:/var/lib/zabbix
restart: unless-stopped
zabbix-web-nginx-pgsql:
image: zabbix/zabbix-web-nginx-pgsql:ubuntu-7.4-latest
environment:
- DB_SERVER_HOST=postgres-server
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
- ZBX_SERVER_HOST=${ZBX_SERVER_HOST}
- ZBX_SERVER_NAME=${ZBX_SERVER_NAME}
depends_on:
- postgres-server
- zabbix-server
ports:
- "${ZBX_WEBSERVER_PORT}:8080"
volumes:
- ./zbx_env/etc/zabbix/web:/etc/zabbix/web
restart: unless-stopped
zabbix-agent:
image: zabbix/zabbix-agent:ubuntu-7.4-latest
environment:
- ZBX_SERVER_HOST=${ZBX_SERVER_HOST}
- ZBX_HOSTNAME=zabbix-agent
depends_on:
- zabbix-server
ports:
- "10050:10050"
restart: unless-stopped
Penjelasan:
- postgres-server: Menjalankan PostgreSQL sebagai database.
- zabbix-server: Menjalankan Zabbix server untuk pemrosesan data monitoring.
- zabbix-web-nginx-pgsql: Menjalankan web interface Zabbix dengan Nginx.
- zabbix-agent: Opsional, untuk memonitor host lokal (bisa dihapus jika tidak diperlukan).
- volumes: Menyimpan data persisten (database, konfigurasi) di direktori ./zbx_env.
- ports: Memetakan port container ke host (misalnya, 8080 di host ke 8080 di container untuk web interface).
Simpan file docker-compose.yaml di direktori zabbix-docker.
Langkah 4: Buat Direktori untuk Volume
Buat direktori untuk menyimpan data persisten:
mkdir -p zbx_env/var/lib/postgresql/data
mkdir -p zbx_env/etc/zabbix
mkdir -p zbx_env/var/lib/zabbix
mkdir -p zbx_env/etc/zabbix/web
Langkah 5: Jalankan Docker Compose
- Pull image Zabbix:
-
docker-compose pull
-
- Jalankan container:
- Jalankan semua layanan dalam mode detached:
-
docker-compose up -d
- Verifikasi container:
docker-compose ps
Anda seharusnya melihat container untuk postgres-server, zabbix-server, zabbix-web-nginx-pgsql, dan (jika diaktifkan) zabbix-agent dalam status Up.
Langkah 6: Konfigurasi Awal Zabbix
- Akses web interface:
- Buka browser dan akses Zabbix melalui:
-
Ganti <IP_SERVER> dengan IP server Anda (misalnya, http://192.168.1.100:8080/zabbix).http://<IP_SERVER>:<ZBX_WEBSERVER_PORT>/zabbix
- Ikuti wizard instalasi:
- Welcome: Klik "Next step".
- Check of pre-requisites: Pastikan semua persyaratan terpenuhi (biasanya sudah OK dengan Docker). Klik "Next step".
- Configure DB connection: Data seperti nama database, pengguna, dan kata sandi sudah diatur di .env. Pastikan sesuai, lalu klik "Next step".
- Settings: Masukkan nama server Zabbix (sesuai ZBX_SERVER_NAME di .env). Klik "Next step".
- Summary: Tinjau konfigurasi, lalu klik "Next step".
- Finish: Jika instalasi berhasil, Anda akan melihat pesan sukses. Klik "Finish".
- Login ke Zabbix:
- URL: http://<IP_SERVER>:<ZBX_WEBSERVER_PORT>/zabbix
- Username default: Admin
- Password default: zabbix
- Setelah login, segera ubah kata sandi di menu Administration > Users > Admin untuk keamanan.
