Sunday, February 1, 2026

installasi zabix ( monitoring web server )

Script: startzabbix-smart.sh

Bash
#!/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

Bash
#!/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

  1. Buka menu Dashboards (menu paling atas di sidebar).

  2. Klik tombol Create dashboard di pojok kanan atas.

  3. Beri nama, contoh: Monitoring Center, lalu klik Apply.

3. Menambahkan Widget Tabel (Top Hosts)

  1. Klik Add widget di tengah layar atau pojok kanan atas.

  2. Pilih Type: Top hosts.

  3. 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 KolomData / ItemCatatan
HostHost nameMenampilkan nama server.
IP AddressHost interfaceMenampilkan IP server secara otomatis.
CPUItem value: CPU utilizationMenampilkan beban prosesor dalam %.
RAMItem value: Memory utilizationMenampilkan penggunaan RAM dalam %.
UptimeItem value: System uptimeMenampilkan durasi server menyala.

5. Simpan dan Selesai





No comments:

Post a Comment