Script: startzabbix-smart.sh
#!/bin/bash
# --- KONFIGURASI ---
ZBX_VER="alpine-7.0-latest"
MYSQL_PASS="zabbix_pwd"
NET_NAME="zabbix-net"
DB_VOL="zabbix-db-storage"
echo "🔍 Memulai pengecekan sistem..."
# 1. Cek Network
if ! podman network exists $NET_NAME; then
echo "🌐 Membuat network: $NET_NAME"
podman network create $NET_NAME
else
echo "✅ Network sudah ada."
fi
# 2. Cek Volume Database
if ! podman volume exists $DB_VOL; then
echo "📦 Membuat volume baru untuk database..."
podman volume create $DB_VOL
else
echo "✅ Volume database ditemukan."
fi
# 3. Fungsi untuk membersihkan kontainer lama
cleanup() {
if [ "$(podman ps -aq -f name=$1)" ]; then
echo "🔄 Me-restart kontainer $1..."
podman rm -f $1 > /dev/null
fi
}
# 4. Jalankan Database (MySQL)
cleanup "zabbix-db"
echo "🗄️ Menjalankan MySQL..."
podman run -d --name zabbix-db \
--net $NET_NAME \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="$MYSQL_PASS" \
-e MYSQL_ROOT_PASSWORD="$MYSQL_PASS" \
--restart always \
-v $DB_VOL:/var/lib/mysql:Z \
docker.io/mysql:8.0
# Tunggu DB sampai siap (Healthcheck sederhana)
echo "⏳ Menunggu database siap..."
sleep 15
# 5. Jalankan Java Gateway (Opsional)
cleanup "zabbix-java-gateway"
podman run -d --name zabbix-java-gateway \
--net $NET_NAME \
--restart always \
docker.io/zabbix/zabbix-java-gateway:$ZBX_VER
# 6. Jalankan Zabbix Server Core
cleanup "zabbix-server"
echo "🧠 Menjalankan Core Server..."
podman run -d --name zabbix-server \
--net $NET_NAME \
-p 10051:10051 \
-e DB_SERVER_HOST="zabbix-db" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="$MYSQL_PASS" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--restart always \
docker.io/zabbix/zabbix-server-mysql:$ZBX_VER
# 7. Jalankan Web Dashboard
cleanup "zabbix-web"
echo "🖥️ Menjalankan Web Dashboard..."
podman run -d --name zabbix-web \
--net $NET_NAME \
-p 8080:8080 \
-e ZBX_SERVER_HOST="zabbix-server" \
-e DB_SERVER_HOST="zabbix-db" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="$MYSQL_PASS" \
-e PHP_TZ="Asia/Jakarta" \
--restart always \
docker.io/zabbix/zabbix-web-nginx-mysql:$ZBX_VER
echo "------------------------------------------------"
echo "🚀 Selesai! Zabbix Server 7.0 Berjalan."
echo "🌐 URL: http://$(hostname -I | awk '{print $1}'):8080"
echo "------------------------------------------------"
Script: startzabbixagent-smart.sh
#!/bin/bash
# --- KONFIGURASI ---
CONTAINER_NAME="zabbix-agent"
ZABBIX_SERVER="192.168.10.65" # IP Server Pusat Anda
HOSTNAME_KITA=$(hostname) # Mengambil hostname otomatis agar unik di dashboard
IMAGE="docker.io/zabbix/zabbix-agent2:alpine-7.0-latest"
echo "🔍 Memulai pengecekan Agent untuk host: $HOSTNAME_KITA..."
# 1. Cek apakah Podman terinstal
if ! command -v podman &> /dev/null; then
echo "❌ Error: Podman tidak ditemukan. Silakan instal podman terlebih dahulu."
exit 1
fi
# 2. Fungsi Cleanup: Hapus kontainer lama jika ada agar tidak bentrok
if [ "$(podman ps -aq -f name=$CONTAINER_NAME)" ]; then
echo "🔄 Menghapus kontainer lama $CONTAINER_NAME..."
podman rm -f $CONTAINER_NAME > /dev/null
fi
# 3. Jalankan Zabbix Agent 2 dengan fitur Smart & Portable
echo "🚀 Menjalankan Zabbix Agent 2 (Versi Alpine)..."
podman run -d --name $CONTAINER_NAME \
--net=host \
--privileged \
--restart always \
-e ZBX_SERVER_HOST="$ZABBIX_SERVER" \
-e ZBX_HOSTNAME="$HOSTNAME_KITA" \
-e ZBX_SERVER_ACTIVE="$ZABBIX_SERVER" \
-v /:/host:ro,Z \
-v /proc:/host/proc:ro,Z \
-v /sys:/host/sys:ro,Z \
$IMAGE
# 4. Verifikasi Akhir
if [ $? -eq 0 ]; then
echo "------------------------------------------------"
echo "✅ Agent Berhasil Dijalankan secara Portable!"
echo "📊 Hostname di Zabbix: $HOSTNAME_KITA"
echo "🔗 Terhubung ke Server: $ZABBIX_SERVER"
echo "📝 Gunakan 'podman logs -f $CONTAINER_NAME' untuk cek log."
echo "------------------------------------------------"
else
echo "❌ Gagal menjalankan Agent."
fi
Berikut adalah panduan ringkas untuk membuat dashboard tabel pemantau (All-in-One) agar Anda bisa melihat status CPU, RAM, dan Uptime dari semua server sekaligus dalam satu layar tanpa perlu klik satu per satu.
1. Persiapan Host
Pastikan semua server (Windows/Linux) sudah terdaftar di menu Data Collection > Hosts dan indikator ZBX sudah berwarna Hijau.
2. Membuat Dashboard Baru
Buka menu Dashboards (menu paling atas di sidebar).
Klik tombol Create dashboard di pojok kanan atas.
Beri nama, contoh:
Monitoring Center, lalu klik Apply.
3. Menambahkan Widget Tabel (Top Hosts)
Klik Add widget di tengah layar atau pojok kanan atas.
Pilih Type: Top hosts.
Pada bagian Hosts, pilih grup server Anda atau masukkan nama host satu per satu (seperti
rs,server-windows, dsb).
4. Konfigurasi Kolom (Inti Tabel)
Klik tombol Add pada bagian Columns untuk setiap data yang ingin ditampilkan:
| Nama Kolom | Data / Item | Catatan |
| Host | Host name | Menampilkan nama server. |
| IP Address | Host interface | Menampilkan IP server secara otomatis. |
| CPU | Item value: CPU utilization | Menampilkan beban prosesor dalam %. |
| RAM | Item value: Memory utilization | Menampilkan penggunaan RAM dalam %. |
| Uptime | Item value: System uptime | Menampilkan durasi server menyala. |
No comments:
Post a Comment