RS
RuangSyahrul
Tutorial
7 min read 1,462 words Updated April 29, 2026

Cara Install Cacti Otomatis di Ubuntu/Debian: Monitoring Siap Pakai Sekali Jalan

Panduan ringkas dengan Bash script, checklist, dan troubleshooting cepat. Cacti adalah aplikasi monitoring jaringan berbasis web yang digunakan untuk menampilkan data monitoring dalam bentuk grafik. Dengan Cacti, administrator dapat memantau trafik interface, CPU, memory, penggunaan resource server, hingga perangkat jaringan seperti router dan switch melalui protokol SNMP

Cara Install Cacti Otomatis di Ubuntu/Debian: Monitoring Siap Pakai Sekali Jalan

Pada tutorial ini, kita akan membahas cara install Cacti di Ubuntu/Debian secara otomatis menggunakan Bash script. Metode ini dibuat agar proses instalasi menjadi lebih sederhana, mengurangi langkah manual yang panjang, dan sangat cocok digunakan untuk kebutuhan lab, testing, pembelajaran, atau setup monitoring sederhana.

Catatan singkat: Artikel ini memakai metode install via repository resmi Ubuntu/Debian agar proses lebih cepat dan mudah diikuti. Jika kamu membutuhkan versi Cacti terbaru dari source resmi (untuk kebutuhan production yang spesifik), disarankan menggunakan metode instalasi manual.

Target Tutorial

  • Menginstall Cacti di Ubuntu/Debian hanya dengan mengeksekusi satu script.

  • Mengurangi langkah manual yang biasanya panjang dan repetitif.

  • Membantu user memahami error umum (troubleshooting) tanpa harus membaca dokumentasi yang terlalu panjang.

Persiapan Server (Kebutuhan Sistem)

Sebelum menjalankan script, pastikan server memenuhi spesifikasi berikut:

Komponen Rekomendasi

OS

Ubuntu 22.04 / 24.04 atau Debian 12 / 13

RAM

Minimal 1 GB, disarankan 2 GB

Disk

Minimal 5 GB free space

Akses

Root atau user dengan hak akses sudo

Network

Internet aktif

Port

Port 80 tersedia untuk Apache

Langkah 1: Buat File Script

Pertama, masuk ke server kamu dan buat file instalasi baru:

nano install-cacti.sh

Langkah 2: Isi Script Auto Install

Copy dan paste script berikut ke dalam file yang baru saja dibuat:

#!/bin/bash

# ============================================================
# Auto Install Cacti for Ubuntu/Debian
# Author   : Syahrul Ramadhan
# Website  : syahrulramadhan.id
# Purpose  : Simple Cacti installation automation
# ============================================================

set -Eeuo pipefail

LOG_FILE="/var/log/install-cacti-syahrulramadhan.log"
TIMEZONE="Asia/Jakarta"

exec > >(tee -a "$LOG_FILE") 2>&1

trap 'echo ""; echo "ERROR: Instalasi berhenti di baris $LINENO."; echo "Cek log: $LOG_FILE"; exit 1' ERR

echo "================================================"
echo " Auto Install Cacti untuk Ubuntu/Debian"
echo " by syahrulramadhan.id"
echo " Log file: $LOG_FILE"
echo "================================================"

if [ "$EUID" -ne 0 ]; then
  echo "ERROR: Jalankan script sebagai root."
  echo "Contoh: sudo ./install-cacti.sh"
  exit 1
fi

if ! command -v apt >/dev/null 2>&1; then
  echo "ERROR: Sistem ini tidak menggunakan APT."
  echo "Script ini hanya untuk Ubuntu/Debian."
  exit 1
fi

if [ ! -f /etc/os-release ]; then
  echo "ERROR: Tidak bisa mendeteksi OS."
  exit 1
fi

. /etc/os-release

case "${ID_LIKE:-$ID}" in
  *debian*|*ubuntu*)
    echo "OS terdeteksi: ${PRETTY_NAME:-$ID}"
    ;;
  *)
    echo "ERROR: OS tidak didukung. Gunakan Ubuntu/Debian."
    exit 1
    ;;
esac

echo ""
echo "[Pre-check] Mengecek koneksi DNS..."
if ! getent hosts deb.debian.org >/dev/null 2>&1 && ! getent hosts archive.ubuntu.com >/dev/null 2>&1; then
  echo "ERROR: DNS atau koneksi internet bermasalah."
  echo "Pastikan server bisa mengakses repository Ubuntu/Debian."
  exit 1
fi

echo "[Pre-check] Mengecek sisa disk..."
FREE_MB=$(df -Pm / | awk 'NR==2 {print $4}')
if [ "$FREE_MB" -lt 2048 ]; then
  echo "ERROR: Sisa disk kurang dari 2 GB."
  echo "Free space saat ini: ${FREE_MB} MB"
  exit 1
fi

echo "[Pre-check] Mengecek port 80..."
if ss -ltnp 2>/dev/null | grep -q ':80 '; then
  echo "WARNING: Port 80 sudah digunakan."
  echo "Jika Apache gagal start, kemungkinan ada service lain yang memakai port 80."
fi

echo ""
echo "[1/8] Update repository..."
apt update -y

echo ""
echo "[2/8] Install dependency utama..."
apt install -y \
  apache2 \
  mariadb-server \
  php \
  php-cli \
  php-mysql \
  php-snmp \
  php-xml \
  php-mbstring \
  php-gd \
  php-gmp \
  php-zip \
  php-ldap \
  rrdtool \
  snmp \
  snmpd \
  cron \
  curl \
  ca-certificates \
  lsb-release

echo ""
echo "[3/8] Install Cacti..."
echo "Catatan:"
echo "- Jika muncul pilihan web server, pilih: apache2"
echo "- Jika muncul konfigurasi database dbconfig-common, pilih: Yes"
apt install -y cacti

echo ""
echo "[4/8] Aktifkan service utama..."
systemctl enable --now apache2
systemctl enable --now mariadb
systemctl enable --now snmpd
systemctl enable --now cron

echo ""
echo "[5/8] Konfigurasi timezone PHP..."
PHP_INI_FILES=$(find /etc/php -type f \( -path "*/apache2/php.ini" -o -path "*/cli/php.ini" \) 2>/dev/null || true)

if [ -n "$PHP_INI_FILES" ]; then
  for PHP_INI in $PHP_INI_FILES; do
    echo "Update timezone pada: $PHP_INI"
    if grep -q "^;date.timezone =" "$PHP_INI"; then
      sed -i "s|^;date.timezone =.*|date.timezone = $TIMEZONE|" "$PHP_INI"
    elif grep -q "^date.timezone =" "$PHP_INI"; then
      sed -i "s|^date.timezone =.*|date.timezone = $TIMEZONE|" "$PHP_INI"
    else
      echo "date.timezone = $TIMEZONE" >> "$PHP_INI"
    fi
  done
else
  echo "WARNING: File php.ini tidak ditemukan. Lewati konfigurasi timezone."
fi

echo ""
echo "[6/8] Restart service..."
systemctl restart apache2
systemctl restart mariadb
systemctl restart snmpd
systemctl restart cron

echo ""
echo "[7/8] Validasi service..."

check_service() {
  SERVICE_NAME="$1"
  if systemctl is-active --quiet "$SERVICE_NAME"; then
    echo "OK: $SERVICE_NAME berjalan"
  else
    echo "WARNING: $SERVICE_NAME tidak berjalan"
    systemctl status "$SERVICE_NAME" --no-pager || true
  fi
}

check_service apache2
check_service mariadb
check_service snmpd
check_service cron

echo ""
echo "[8/8] Informasi akses..."
SERVER_IP=$(hostname -I | awk '{print $1}')

echo "================================================"
echo " Instalasi selesai."
echo " Dibuat oleh: syahrulramadhan.id"
echo ""
echo " Akses Cacti dari browser:"
echo "   http://$SERVER_IP/cacti"
echo ""
echo " Default login Cacti biasanya:"
echo "   Username: admin"
echo "   Password: admin"
echo ""
echo " Setelah login pertama, biasanya user diminta mengganti password."
echo "================================================"
echo ""
echo "Log instalasi:"
echo "  $LOG_FILE"
echo ""
echo "Jika Cacti tidak bisa diakses, cek:"
echo "  systemctl status apache2"
echo "  systemctl status mariadb"
echo "  tail -n 50 /var/log/apache2/error.log"
echo ""
echo "Powered by syahrulramadhan.id"

Setelah script dimasukkan, simpan file (Jika menggunakan nano, tekan CTRL + X, lalu Y, dan Enter).

Langkah 3: Jalankan Script

Berikan permission execute agar script bisa dijalankan:

chmod +x install-cacti.sh

Jalankan script dengan akses root/sudo:

sudo ./install-cacti.sh

Jika Muncul Prompt Saat Instalasi

Pada beberapa versi Ubuntu/Debian, package Cacti akan memunculkan pop-up konfigurasi. Berikut panduannya:

Prompt Pilihan

Web server

Pilih apache2

Configure database with dbconfig-common?

Pilih Yes

Password database

Isi password yang kuat dan simpan baik-baik

Akses Cacti & Setup Awal

Setelah instalasi selesai, buka browser dan akses URL berikut:

http://IP_SERVER/cacti (Contoh: http://192.168.1.10/cacti)

Jika kamu tidak tahu IP server, jalankan perintah: hostname -I

Login Default:

  • Username: admin

  • Password: admin

    (Setelah login pertama, Cacti akan meminta kamu mengganti password default ini).

Setup Awal Setelah Login:

  1. Ikuti wizard instalasi sampai selesai (Accept license, cek requirement sistem, dll).

  2. Pastikan semua requirement utama berstatus OK (hijau).

  3. Untuk mulai memonitoring, masuk ke menu Console > Devices.

  4. Klik Add dan tambahkan IP/Hostname perangkat yang ingin dimonitor.

  5. Pastikan SNMP sudah aktif pada perangkat tujuan.

  6. Buat graph sesuai interface atau resource yang ingin dipantau.

Troubleshooting Cepat

Jika terjadi kendala, gunakan tabel referensi cepat berikut:

Masalah Kemungkinan Penyebab Solusi Cepat

Script berhenti di awal

Tidak dijalankan sebagai root

Jalankan: sudo ./install-cacti.sh

APT gagal update

DNS/repository bermasalah

Cek: ping 8.8.8.8 dan apt update

APT lock

Ada proses apt lain berjalan

Tunggu proses selesai, lalu ulangi script

Disk kurang

Free space di bawah 2 GB

Cek df -h, bersihkan cache: apt clean

Cacti tidak bisa dibuka

Apache tidak berjalan

Cek: systemctl status apache2

404 Not Found

Alias Cacti belum aktif

Cek: dpkg -l | grep cacti

500 Internal Server Error

PHP/timezone bermasalah

Cek: tail -n 50 /var/log/apache2/error.log

Login gagal

Password default diganti

Coba admin/admin atau cek catatan instalasi

Graph kosong

Cron/poller belum jalan

Cek: systemctl status cron

SNMP timeout

SNMP belum aktif/diblokir

Tes: snmpwalk -v2c -c public IP_DEVICE

Panduan Troubleshooting Lanjutan

Jika tabel cepat di atas belum menyelesaikan masalah, berikut adalah penjelasan lebih detail untuk beberapa masalah umum:

1. Apache atau MariaDB Gagal Berjalan

Cacti tidak bisa diakses jika Web Server atau Database mati. Cek statusnya:

sudo systemctl status apache2
sudo systemctl status mariadb

Catatan: Jika port 80 digunakan oleh Nginx, kamu harus menghentikan Nginx terlebih dahulu (sudo systemctl stop nginx), lalu restart Apache (sudo systemctl restart apache2).

2. Halaman Cacti 404 Not Found

Apache berjalan, tetapi path /cacti belum dikenali. Pastikan konfigurasi alias Apache untuk Cacti sudah aktif:

ls /etc/apache2/conf-enabled/ | grep cacti
sudo systemctl restart apache2

3. Halaman Cacti 500 Internal Server Error

Web server aktif, tetapi aplikasi Cacti gagal diproses oleh PHP (biasanya karena modul kurang atau timezone belum diset). Cek error log Apache:

sudo tail -n 50 /var/log/apache2/error.log

4. Graph Tidak Muncul / Kosong

Ini masalah paling umum. Biasanya butuh beberapa menit agar data pertama muncul. Jika tetap kosong, pastikan layanan cron berjalan, yang bertugas memicu poller Cacti:

sudo systemctl status cron

Kamu juga bisa mengecek apakah file data (RRD) sudah terbentuk:

sudo find /var/lib/cacti -name "*.rrd" | head

5. Permission Error pada RRD atau Log

Jika graph tidak ter-generate dan log menampilkan permission denied, perbaiki ownership direktorinya:

sudo chown -R www-data:www-data /var/lib/cacti /var/log/cacti
sudo systemctl restart apache2

6. Device Terlihat Down di Dashboard

Jika perangkat bisa di-ping tapi terbaca down di Cacti, ubah metode availability detection di pengaturan Cacti (Console > Devices). Jika perangkat menggunakan SNMP, tes koneksi SNMP dari server Cacti ke perangkat:

snmpwalk -v2c -c public IP_DEVICE

Kesimpulan

Dengan menggunakan Bash script, proses instalasi Cacti di Ubuntu/Debian menjadi sangat singkat. Script ini akan menangani instalasi dependency utama (Apache, MariaDB, PHP, SNMP, RRDtool) dalam satu alur, sekaligus melakukan validasi sistem dasar.

Pada server fresh install dengan koneksi internet yang stabil, instalasi umumnya akan berjalan tanpa hambatan.

Referensi Resmi:

Artikel ini disusun oleh syahrulramadhan.id sebagai panduan instalasi Cacti yang ringkas, teknis, dan mudah dipahami.

Related Posts

Lihat semua

Discussion (0)

Leave a comment

No comments yet. Be the first to start the discussion!