Skip to main content

Zabbix Restore

Berikut adalah panduan lengkap untuk merestorasi backup Zabbix 7.4 yang telah dibuat dari server sumber ke server tujuan baru yang menjalankan Ubuntu 22.04 LTS. Proses ini mencakup restore database PostgreSQL, volume Docker, dan file konfigurasi untuk memastikan Zabbix berjalan kembali seperti di server asal. Saya akan menjelaskan langkah-langkah secara detail dengan asumsi Anda telah memiliki file backup dari panduan sebelumnya.Prasyarat

  1. Server Tujuan:
    • Ubuntu 22.04 LTS yang bersih.
    • Docker dan Docker Compose sudah terinstal (ikuti Langkah 1 dari panduan instalasi sebelumnya jika belum).
    • Akses root atau hak sudo.
    • Spesifikasi server setara atau lebih baik dari server sumber.
  2. File Backup:
    • zabbix_backup_YYYY-MM-DD.sql: File backup database PostgreSQL.
    • zbx_env_backup_YYYY-MM-DD.tar.gz: File backup volume Docker.
    • docker-compose_backup_YYYY-MM-DD.yaml: File konfigurasi Docker Compose.
    • .env_backup_YYYY-MM-DD: File variabel lingkungan.
  3. Koneksi Jaringan:
    • Pastikan port 8080 (atau port web yang digunakan), 10051 (Zabbix server), dan 10050 (Zabbix agent, jika digunakan) tidak diblokir firewall.
  4. Alat Pendukung:
    • Akses SSH untuk transfer file (misalnya, scp atau rsync) dari server sumber atau penyimpanan backup.

Langkah-langkah Restore Zabbix 7.4Langkah 1: Persiapkan Server Tujuan

  1. Update sistem Ubuntu: Pastikan sistem tujuan diperbarui:
    bash

    sudo apt update && sudo apt upgrade -y
  2. Install Docker dan Docker Compose: Jika belum terinstal, ikuti langkah-langkah berikut (sesuai panduan instalasi sebelumnya):
    bash

    # Install dependensi
    sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
    
    # Tambahkan GPG key 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
    
    # Install Docker
    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io
    
    # Install Docker Compose
    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
    
    # Tambahkan pengguna ke grup Docker (opsional)
    sudo usermod -aG docker $USER
    newgrp docker
  3. Verifikasi instalasi:
    bash

    docker --version
    docker-compose --version

Langkah 2: Transfer File Backup ke Server Tujuan

  1. Pindahkan file backup: Gunakan scp atau rsync untuk mentransfer file backup dari server sumber (atau penyimpanan eksternal) ke server tujuan. Misalnya, dari server sumber atau lokasi penyimpanan:
    bash

    scp zabbix_backup_2025-07-13.sql zbx_env_backup_2025-07-13.tar.gz docker-compose_backup_2025-07-13.yaml .env_backup_2025-07-13 user@<IP_SERVER_TUJUAN>:~/zabbix-restore/
    • Ganti <IP_SERVER_TUJUAN> dengan IP server tujuan.
    • Ganti user dengan nama pengguna SSH di server tujuan.
    • Direktori tujuan (~/zabbix-restore/) bisa disesuaikan.
  2. Buat direktori kerja di server tujuan: SSH ke server tujuan dan buat direktori untuk restore:
    bash

    mkdir ~/zabbix-restore
    cd ~/zabbix-restore
  3. Verifikasi file backup: Pastikan semua file telah ditransfer:
    bash

    ls -lh
    Anda seharusnya melihat:
    • zabbix_backup_2025-07-13.sql
    • zbx_env_backup_2025-07-13.tar.gz
    • docker-compose_backup_2025-07-13.yaml
    • .env_backup_2025-07-13

Langkah 3: Siapkan File Konfigurasi

  1. Salin file konfigurasi: Gunakan file docker-compose.yaml dan .env dari backup:
    bash

    cp docker-compose_backup_2025-07-13.yaml docker-compose.yaml
    cp .env_backup_2025-07-13 .env
  2. Periksa file .env: Buka file .env untuk memastikan konfigurasinya sesuai dengan server tujuan:
    bash

    nano .env
    • Pastikan ZBX_WEBSERVER_PORT (misalnya, 8080) sesuai dengan port yang diizinkan di server tujuan.
    • Pastikan POSTGRES_PASSWORD dan parameter lain sesuai dengan backup database.
    • Jika IP server berubah, sesuaikan ZBX_SERVER_HOST jika diperlukan.
    • Simpan dan keluar (Ctrl+O, Enter, Ctrl+X).
  3. Periksa file docker-compose.yaml: Pastikan file ini sesuai dengan struktur yang digunakan saat backup (biasanya tidak perlu diubah). 
  1. Pastikan izin direktori: Berikan izin yang sesuai untuk Docker:
    bash

    sudo chown -R $USER:docker zbx_env
    sudo chmod -R 755 zbx_env

Langkah 5: Jalankan Container untuk Persiapan Restore Database

  1. Jalankan container tanpa Zabbix server dan web: Ubah sementara docker-compose.yaml untuk hanya menjalankan container PostgreSQL agar database dapat direstorasi terlebih dahulu. Edit file docker-compose.yaml:
    bash

    nano docker-compose.yaml
    Komentari (tambahkan # di depan) layanan zabbix-server, zabbix-web-nginx-pgsql, dan zabbix-agent (jika ada) untuk sementara. Contoh:
    yaml

    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:
      #   ...
      # zabbix-web-nginx-pgsql:
      #   ...
      # zabbix-agent:
      #   ...
    Simpan dan keluar.
  2. Jalankan container PostgreSQL:
    bash

    docker-compose up -d
  3. Verifikasi container PostgreSQL: Pastikan container berjalan Indonesia
    docker-compose ps
    Anda seharusnya melihat container `postgres-server` dalam status `Up`.
    • Salin file backup database ke container:
      Salin file SQL ke container PostgreSQL:
      docker cp zabbix_backup_2025-07-13.sql zabbix-docker-postgres-server-1:/tmp/zabbix_backup.sql
    • Restore database: Jalankan perintah untuk merestorasi database:
      bash

      docker exec zabbix-docker-postgres-server-1 psql -U zabbix -d zabbix -f /tmp/zabbix_backup.sql
    • -U zabbix: Nama pengguna database (sesuaikan jika berbeda di .env).
    • -d zabbix: Nama database (sesuaikan jika berbeda).
    • Jika terjadi error, pastikan pengguna dan kata sandi di .env sesuai.
    • Hapus file sementara (opsional):
      bash

      docker exec zabbix-docker-postgres-server-1 rm /tmp/zabbix_backup.sql

Langkah 7: Jalankan Semua Container

  1. Kembalikan docker-compose.yaml: Buka docker-compose.yaml dan hapus tanda komentar (#) dari layanan zabbix-server, zabbix-web-nginx-pgsql, dan zabbix-agent (jika ada):

     

    nano docker-compose.yaml
    Pastikan semua layanan aktif kembali.
  2. Jalankan semua container:

     

    docker-compose up -d
  3. Verifikasi container: Pastikan semua container berjalan:

     

    docker-compose ps
    Anda seharusnya melihat semua container (postgres-server, zabbix-server, zabbix-web-nginx-pgsql, dan zabbix-agent jika digunakan) dalam status Up

Langkah 8: Akses dan Verifikasi Zabbix

  1. Akses web interface: Buka browser dan akses Zabbix di server tujuan:

    http://<IP_SERVER_TUJUAN>:<ZBX_WEBSERVER_PORT>/zabbix
    Contoh: http://192.168.1.100:8080/zabbix.
  2. Login ke Zabbix:
    • Username: Admin (atau username yang digunakan di server sumber).
    • Password: Kata sandi yang digunakan di server sumber (default: zabbix jika belum diubah).
    • Jika kata sandi tidak berfungsi, reset kata sandi melalui database (lihat Langkah 9 jika diperlukan).
  3. Verifikasi data:
    • Navigasi ke Monitoring > Latest data untuk memastikan data monitoring dari server sumber tersedia.
    • Periksa Configuration > Hosts untuk memastikan semua host yang sebelumnya dikonfigurasi ada.
    • Pastikan status host menunjukkan koneksi aktif (kolom Availability berwarna hijau).

Langkah 9: (Opsional) Reset Kata Sandi AdminJika Anda lupa kata sandi Admin atau ingin meresetnya:

  1. Akses database:

     

    docker exec -it zabbix-docker-postgres-server-1 psql -U zabbix -d zabbix
  2. Update kata sandi Admin: Jalankan perintah SQL untuk mereset kata sandi user Admin ke zabbix:
    sql

    UPDATE users SET passwd=md5('zabbix') WHERE username='Admin';
    \q
  3. Login ulang: Coba login kembali dengan Admin/zabbix.

Langkah 10: Pemecahan Masalah

  1. Web interface tidak dapat diakses:
    • Pastikan port ZBX_WEBSERVER_PORT (misalnya, 8080) terbuka:
      bash

      sudo ufw allow 8080
    • Cek log container:
      bash

      docker-compose logs zabbix-web-nginx-pgsql
  2. Database error:
    • Pastikan variabel di .env (POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB) sesuai dengan backup.
    • Jika database gagal dimuat, periksa integritas file SQL:
      bash

      less zabbix_backup_2025-07-13.sql
    • Coba restore ulang jika file rusak.
  3. Zabbix server tidak terhubung ke database:
    • Cek log:
      bash

      docker-compose logs zabbix-server
    • Pastikan container postgres-server berjalan sebelum zabbix-server.
  4. Host tidak terhubung:
    • Pastikan IP server tujuan sesuai dengan konfigurasi Zabbix agent di host yang dimonitor.
    • Perbarui Server di file konfigurasi agent (/etc/zabbix/zabbix_agentd.conf) di host target:
      bash

      Server=<IP_SERVER_TUJUAN>
    • Restart agent:
      bash

      sudo systemctl restart zabbix-agent

Langkah 11: (Opsional) Konfigurasi Tambahan

  1. Konfigurasi firewall: Pastikan port yang diperlukan terbuka:
    bash

    sudo ufw allow 8080
    sudo ufw allow 10051
    sudo ufw allow 10050
  2. Konfigurasi HTTPS (opsional): Untuk keamanan, konfigurasikan SSL di Nginx. Tambahkan sertifikat SSL ke volume zbx_env/etc/zabbix/web dan ubah docker-compose.yaml untuk menggunakan port 443.
  3. Backup rutin: Setelah restore berhasil, atur cron job untuk backup rutin di server tujuan:
    bash

    crontab -e
    Tambahkan baris untuk backup harian (misalnya, pukul 02:00):
    bash

    0 2 * * * cd ~/zabbix-restore && docker exec zabbix-docker-postgres-server-1 pg_dump -U zabbix zabbix > zabbix_backup_$(date +\%F).sql && tar -zcvf zbx_env_backup_$(date +\%F).tar.gz zbx_env

Catatan Penting

  • Integritas backup:
    • Pastikan file backup tidak rusak sebelum restore. Verifikasi ukuran file dan coba buka file .sql untuk memeriksa isinya.
  • Konsistensi konfigurasi:
    • Gunakan file docker-compose.yaml dan .env yang sama dengan server sumber untuk menghindari masalah konfigurasi.
  • Penyimpanan:
    • Pastikan server tujuan memiliki ruang penyimpanan yang cukup untuk volume Docker dan database.
  • Keamanan:
    • Ganti kata sandi default (Admin/zabbix, POSTGRES_PASSWORD) setelah restore.
    • Pertimbangkan untuk mengenkripsi transfer file backup (misalnya, menggunakan scp dengan SSH).
  • Referensi:

RingkasanDengan langkah-langkah di atas, Anda telah berhasil merestorasi Zabbix 7.4 dari backup di server Ubuntu 22.04 LTS baru. Proses ini mencakup transfer file backup, restore volume Docker, restore database PostgreSQL, dan verifikasi sistem. Zabbix Anda sekarang seharusnya berjalan seperti di server sumber, dengan semua data monitoring, host, dan konfigurasi utuh.Jika Anda mengalami masalah atau memerlukan panduan tambahan (misalnya, konfigurasi lanjutan seperti notifikasi atau clustering), silakan beri tahu!