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 |
|
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 |
|
Configure database with dbconfig-common? |
Pilih |
|
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:
-
Ikuti wizard instalasi sampai selesai (Accept license, cek requirement sistem, dll).
-
Pastikan semua requirement utama berstatus OK (hijau).
-
Untuk mulai memonitoring, masuk ke menu Console > Devices.
-
Klik Add dan tambahkan IP/Hostname perangkat yang ingin dimonitor.
-
Pastikan SNMP sudah aktif pada perangkat tujuan.
-
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: |
|
APT gagal update |
DNS/repository bermasalah |
Cek: |
|
APT lock |
Ada proses apt lain berjalan |
Tunggu proses selesai, lalu ulangi script |
|
Disk kurang |
Free space di bawah 2 GB |
Cek |
|
Cacti tidak bisa dibuka |
Apache tidak berjalan |
Cek: |
|
404 Not Found |
Alias Cacti belum aktif |
Cek: |
|
500 Internal Server Error |
PHP/timezone bermasalah |
Cek: |
|
Login gagal |
Password default diganti |
Coba admin/admin atau cek catatan instalasi |
|
Graph kosong |
Cron/poller belum jalan |
Cek: |
|
SNMP timeout |
SNMP belum aktif/diblokir |
Tes: |
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.