Monitoring Jaringan dengan Cacti: Dari Instalasi Debian 13 hingga MikroTik
Tutorial membangun monitoring jaringan dengan Cacti di Debian 13 (VirtualBox) dan memantau MikroTik lewat SNMP.

Monitoring jaringan membantu kita mengetahui kondisi perangkat, penggunaan bandwidth, dan perubahan trafik dari waktu ke waktu. Pada tutorial ini kita membangun server monitoring menggunakan Cacti di Debian 13 yang berjalan di VirtualBox, lalu menghubungkannya ke perangkat MikroTik melalui SNMP.
Alurnya: VirtualBox → konfigurasi jaringan → repository → Apache, PHP, MariaDB, SNMP → Cacti → tambah device MikroTik. Di bagian akhir ada daftar error umum beserta cara memperbaikinya.
Cara Menginstall Debian di VirtualBox
Catatan: Tutorial ini disusun untuk praktik lab. Pahami alasan di balik setiap perintah, jangan hanya menyalinnya. Nama interface, IP, dan versi paket bisa berbeda di setiap lingkungan.
Adapter 1 (NAT) ──► internet, untuk apt update
Adapter 2 (Bridged) ──► jaringan lokal, untuk akses Cacti / SSH
Debian 13 (Cacti) ── SNMP ── MikroTik1. Siapkan Virtual Machine
Buka VirtualBox, pilih VM Debian yang sudah dibuat, lalu klik Settings → Network. Atur dua adapter jaringan:
Adapter 1 : NAT # akses internet (apt update, download paket)
Adapter 2 : Bridged Adapter # diakses dari jaringan lokal / hostPada Adapter 2, pilih NIC fisik yang sedang aktif di laptop (WiFi atau Ethernet), bukan adapter virtual lain. Setelah itu nyalakan VM.

2. Cek IP Jaringan Host
Di Windows, buka Command Prompt lalu jalankan:
ipconfigCatat IP address dan subnet dari adapter yang sama dengan jaringan Bridged tadi, misalnya 192.168.40.87. IP Debian nanti dibuat satu segmen dengan IP ini.
3. Konfigurasi Jaringan Debian
Login sebagai root, lalu edit file interfaces:
nano /etc/network/interfacesIsi atau sesuaikan seperti berikut:
auto enp0s3
iface enp0s3 inet dhcp
auto enp0s8
iface enp0s8 inet static
address 192.168.40.102
netmask 255.255.255.0Sesuaikan address dengan segmen IP host. Simpan dengan Ctrl+O, Enter, Ctrl+X, lalu restart service jaringan:
systemctl restart networkingNama interface (enp0s3 dan enp0s8) bisa berbeda. Jalankan ip a dulu untuk melihat nama aslinya, lalu sesuaikan isi file di atas.

4. Setting Repository dan Update
Edit daftar repository:
nano /etc/apt/sources.listdeb https://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb https://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware
deb https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmwareSimpan, lalu update sistem:
apt update
apt upgrade -y5. Install Web Server, PHP, Database, dan SNMP
Install Apache2:
apt install apache2 -yInstall PHP beserta modul-modulnya:
apt install php php-cli php-common libapache2-mod-php php-mysql php-gd \
php-curl php-xml php-mbstring php-zip php-snmp php-gmp php-intl -yInstall MariaDB, lalu amankan:
apt install mariadb-server mariadb-client -y
mysql_secure_installationIkuti wizard: set password root, hapus anonymous user, nonaktifkan login root remote, hapus test database. Jawab Y untuk semua rekomendasi.
Pada MariaDB versi baru, perintah mysql_* juga tersedia dengan nama mariadb-* (misalnya mariadb-secure-installation). Jika perintah mysql_* tidak ditemukan, pakai versi mariadb-*-nya.
Install SNMP dan RRDtool (mesin grafik Cacti):
apt install snmp snmpd rrdtool -yInstall Cacti:
apt install cacti -ySaat instalasi muncul dialog dbconfig-common. Pilih Yes, configure database, lalu masukkan password root MariaDB yang dibuat tadi. Jika diminta memilih web server, pilih apache2.
Aktifkan dan jalankan semua service:
systemctl enable apache2 mariadb snmpd
systemctl restart apache2 mariadb snmpd6. Verifikasi dan Akses Cacti
Cek status service:
systemctl status apache2
systemctl status mariadb
systemctl status snmpdCek versi aplikasi yang terpasang:
apache2 -v
php -v
mariadb --versionLalu buka dari browser:
http://IP_SERVER/cactiIP_SERVER adalah alamat static enp0s8 dari Langkah 3, misalnya 192.168.40.102. Login bawaan Cacti adalah admin dengan password admin, dan sistem akan meminta kamu menggantinya.

7. Install dan Konfigurasi SSH
SSH memudahkan kita mengelola server dari komputer utama.
apt install openssh-server -y
nano /etc/ssh/sshd_configCari baris PermitRootLogin lalu ubah nilainya:
PermitRootLogin yesBaris ini biasanya diawali tanda # (komentar). Hapus tanda pagarnya supaya setting benar-benar aktif. Simpan, lalu restart SSH:
systemctl restart ssh
systemctl enable sshCoba akses dari komputer lain:
ssh root@IP_DEBIANLogin SSH sebagai root dengan password hanya cocok untuk lab. Pada server sungguhan, gunakan user biasa dengan SSH key dan matikan login root.
8. Setting Timezone di MariaDB
Cacti membutuhkan data timezone di database agar waktu di grafik akurat. Import data timezone dunia:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysqlOpsional, set timezone default server MariaDB ke WIB. Buka file konfigurasinya:
nano /etc/mysql/mariadb.conf.d/50-server.cnfPada bagian [mysqld], tambahkan satu baris ini di paling bawah bagian tersebut. Jangan hapus atau ubah baris bawaan lainnya:
default-time-zone = '+07:00'Simpan, lalu restart:
systemctl restart mariadbBeri akses tabel timezone ke user database Cacti:
mysql -u root -pGRANT SELECT ON mysql.time_zone_name TO 'cacti'@'localhost';
FLUSH PRIVILEGES;
EXIT;Opsional, samakan timezone PHP. Cari file php.ini yang dipakai Apache (folder bergantung pada versi PHP, cek dengan php -v; Debian 13 umumnya memakai PHP 8.4):
nano /etc/php/8.4/apache2/php.inidate.timezone = Asia/Jakartasystemctl restart apache29. Hapus Database Cacti dan Buat Baru (Opsional)
Langkah ini menghapus semua device, graph, dan data yang sudah ada di Cacti. Lakukan hanya jika memang ingin reset total.
Masuk ke MariaDB:
mysql -u root -pHapus database lama, lalu buat yang baru:
DROP DATABASE cacti;
CREATE DATABASE cacti CHARACTER SET utf8mb4;Pastikan user cacti masih punya hak akses ke database baru:
GRANT ALL PRIVILEGES ON cacti.* TO 'cacti'@'localhost' IDENTIFIED BY 'PASSWORD_BARU';
FLUSH PRIVILEGES;
EXIT;Jalankan ulang wizard paket Cacti supaya schema diimport ke database baru:
dpkg-reconfigure cactiPilih Yes, configure database dan masukkan password root MariaDB. Setelah itu buka lagi http://IP_SERVER/cacti dan lanjutkan instalasi dari awal.
10. Mengatasi Error Modul PHP intl
Saat precheck, Cacti memeriksa beberapa modul PHP, termasuk intl (untuk format tanggal, angka, dan bahasa). Jika modul ini belum ada atau belum aktif, precheck akan menandainya bermasalah.
apt install php-intl -y
phpenmod intl
systemctl restart apache2Verifikasi:
php -m | grep intlJika outputnya intl, modul sudah aktif. Refresh halaman precheck Cacti untuk memeriksa ulang statusnya.
11. Tambah Device MikroTik ke Cacti
Pastikan dulu SNMP aktif di MikroTik. Lewat Winbox: IP → SNMP, centang Enabled, lalu catat atau atur nilai Community. Bisa juga lewat terminal:
/snmp set enabled=yes
/snmp printCommunity public adalah nilai bawaan dan hanya cocok untuk lab. Pada jaringan sungguhan, pakai nama community lain dan batasi akses SNMP hanya dari IP server monitoring.
Uji dari Debian sebelum menambahkan device:
snmpwalk -v2c -c public IP_MIKROTIKJika muncul banyak informasi perangkat, komunikasi SNMP sudah berjalan. Login ke Cacti, lalu buka Console → Create → New Device dan isi:
Description : Mikrotik-Router
Hostname : IP_MIKROTIK
Host Template : Net-SNMP Device / Generic SNMP-enabled Host
Downed Detection : SNMP Uptime
SNMP Version : 1 atau 2 (samakan dengan MikroTik)
SNMP Community : public (samakan dengan MikroTik)Klik Create, lalu lihat bagian SNMP Information. Jika muncul informasi system dan uptime, Cacti sudah berhasil terhubung ke MikroTik.
Tambahkan grafiknya lewat Console → Create → New Graphs. Pilih device MikroTik tadi, pilih data query SNMP Interface Statistics, centang interface yang ingin dipantau (misalnya ether1), lalu klik Create.
Tunggu poller Cacti berjalan (default tiap 5 menit) sampai grafik mulai terisi data.
12. Konfigurasi php.ini (memory_limit dan max_execution_time)
Nilai bawaan PHP kadang kurang besar untuk Cacti, terutama jika grafiknya banyak. Naikkan agar tidak muncul error kehabisan memori atau proses terputus di tengah jalan. Buka php.ini yang dipakai Apache (sesuaikan versi PHP, cek dengan php -v):
nano /etc/php/8.4/apache2/php.iniCari dengan Ctrl+W, lalu ubah nilainya:
memory_limit = 512M
max_execution_time = 60Simpan, lalu restart Apache:
systemctl restart apache2Kemungkinan Error dan Cara Memperbaikinya
Daftar ini bukan untuk dihafal, tapi untuk membantu membaca error dengan tenang. Cocokkan pesan error dengan daftar berikut sebelum bertanya.
Jaringan
- Bridged Adapter tidak dapat internet atau IP tidak muncul. Pastikan Adapter 2 mengarah ke NIC fisik yang sedang terhubung, bukan adapter virtual (Host-Only, VPN, dan sejenisnya). Cek dengan
ip a. Jikaenp0s8tidak mendapat IP, jalankansystemctl restart networking. - Nama interface bukan
enp0s3atauenp0s8. Jalankanip auntuk melihat nama aslinya, lalu sesuaikan isi/etc/network/interfaces. apt update: "Could not resolve deb.debian.org" atau timeout. Ini masalah DNS atau koneksi dari adapter NAT, bukan repository. Tes denganping 8.8.8.8. Jika ping IP berhasil tapi domain gagal, tambahkannameserver 8.8.8.8ke/etc/resolv.conf.- Tidak bisa membuka
http://IP_SERVER/cactidari komputer lain. Pastikan memakai IPenp0s8(bridged). Jika tetap gagal, cekufw status. Jika firewall aktif, izinkan port 80 denganufw allow 80.
Paket dan service
Unable to locate package .... Isisources.listsalah ketik (baris ketiga paling rawan) atau belum di-update. Periksa lagi, lalu jalankanapt update.mysql_secure_installation: "Access denied" atau tidak bisa connect. Service database belum jalan. Ceksystemctl status mariadb, dan jikainactive, jalankansystemctl start mariadb.- Apache gagal start: "Address already in use". Ada service lain yang memakai port 80. Cek dengan
ss -tulnp | grep :80, lalu hentikan service yang bentrok atau ganti port di/etc/apache2/ports.conf. - Halaman
/cactierror database atau blank putih. Lihat log dengantail -n 30 /var/log/apache2/error.log. Biasanya password database di/etc/cacti/debian.phptidak cocok dengan MariaDB.
SSH
Connection refused. Service SSH belum aktif. Ceksystemctl status ssh, dan jikainactive, jalankansystemctl restart ssh. Periksa juga typo di/etc/ssh/sshd_config.Permission denied (publickey,password)saatssh root@IP. BarisPermitRootLoginmasih berupa komentar (#) atau masih bernilaiprohibit-password. Pastikan persisPermitRootLogin yestanpa tanda pagar, lalusystemctl restart ssh.Connection timed out. Biasanya masalah jaringan Bridged, bukan SSH. Tesping IP_DEBIANdari komputer itu. Jika ping gagal, benahi jaringan (Langkah 1 dan 3) dulu.
Database dan timezone
ERROR 1146: Table 'mysql.time_zone_name' doesn't exist. Import timezone belum dijalankan atau gagal di tengah jalan. Ulangimysql_tzinfo_to_sql ...dan pastikan tidak ada error sebelum lanjut keGRANT.- Jam di grafik tidak sesuai WIB. Cek tiga tempat:
default-time-zonedi MariaDB (Langkah 8),date.timezonediphp.ini(Langkah 8), dan Server Timezone di Cacti (Console → Configuration → Settings → General). Ketiganya harus konsistenAsia/Jakarta. dpkg-reconfigure cactigagal: "ERROR 1007: database exists". Database lama belum terhapus. CekSHOW DATABASES;. Jikacactimasih ada, jalankanDROP DATABASE cacti;, lalu ulangidpkg-reconfigure cacti.
PHP
- Setelah install
php-intl, precheck masih bermasalah. Kemungkinan modul aktif di PHP CLI tapi tidak di PHP Apache (atau sebaliknya). Bandingkanphp -vdenganapache2ctl -M | grep php, jalankanphpenmod intluntuk versi yang dipakai Apache, lalusystemctl restart apache2. Fatal error: Allowed memory size ... exhausted. Perubahanphp.inibelum terpakai. Pastikan yang diedit adalahphp.inimilik Apache, bukan CLI. Cek denganphp -i | grep "Loaded Configuration File", ulangi Langkah 12, lalu restart Apache.Maximum execution time of 60 seconds exceeded. Jika prosesnya memang berat, angka 60 bisa dinaikkan (misalnya 120). Tapi periksa juga apakah ada proses lain yang lambat (poller atau query database) yang sebaiknya dioptimalkan, bukan hanya ditambah waktunya.
Cacti dan MikroTik
- Grafik kosong atau "No Data Sources". Poller belum berjalan lewat cron. Cek
cat /etc/cron.d/cacti, dan pastikan community SNMP di device sama dengan yang di MikroTik. - Device MikroTik berstatus merah atau Down. Biasanya SNMP belum aktif di MikroTik, community tidak sama, atau firewall MikroTik memblokir port 161/UDP. Cek di Winbox: IP → SNMP dan IP → Firewall.
- Device sudah Up tapi grafik interface tetap kosong. Graph belum dibuat (ulangi Langkah 11) atau poller belum sempat berjalan. Tunggu minimal satu siklus poller (sekitar 5 menit) sebelum menyimpulkan ada error.
Prinsip Debugging
- Baca pesan error dari atas ke bawah. Biasanya baris terakhir yang paling relevan.
- Cek status service terkait dulu (
systemctl status <nama-service>) sebelum menyalahkan konfigurasi. - Cek log:
/var/log/apache2/error.log,/var/log/syslog, ataujournalctl -xe. - Ulangi satu langkah sebelumnya. Banyak error muncul karena perintah sebelumnya gagal diam-diam.
- Baru cari pesan error persisnya di internet jika langkah 1 sampai 4 belum menjawab.
Selamat mencoba dan selamat membangun lab monitoring sendiri.
— Vesperian Lab