🏗️
SECTION 01
Gambaran Umum Sistem
AIMS Network Monitoring (produk dari PT. Adi Inti Mandiri Solusi) adalah platform monitoring jaringan real-time berbasis web. Data dikumpulkan oleh collector (Python) yang berjalan di server, lalu disimpan ke Supabase (PostgreSQL cloud), dan ditampilkan melalui antarmuka web ini.
Arsitektur Sistem
┌─────────────┐ SNMP/API/Ping ┌──────────────────┐
│ Network │ ────────────────► │ collector.py │
│ Devices │ │ (Python daemon) │
└─────────────┘ └────────┬─────────┘
│ HTTP / PostgREST
▼
┌──────────────────┐
│ Supabase DB │
│ (PostgreSQL) │
└────────┬─────────┘
│ Realtime WS
▼
┌──────────────────┐
│ Dashboard Web │
│ (Browser only) │
└──────────────────┘
Metode Polling yang Didukung
| Metode | Cocok Untuk | Data yang Dikumpulkan |
| SNMP v2c | Router/Switch Cisco, MikroTik, Juniper, dsb | CPU, RAM, Uptime, Interface traffic (HC counters) |
| RouterOS API | MikroTik saja (port 8728) | CPU, RAM, Interface, Routing table |
| REST / HTTP | Device dengan REST API custom | Metric sesuai endpoint yang dikonfigurasi |
| Ping Only | Semua device yang bisa di-ping | Latency & status online/offline |
Interval Polling
Default interval polling adalah 60 detik. Ubah di collector.py variabel POLL_INTERVAL.
🔐
SECTION 02
Login & Role Pengguna
Cara Login
1
Buka dashboard.html di browser. Klik tombol "Login" di pojok kanan atas.
2
Masukkan Email dan Password akun Supabase Auth yang sudah didaftarkan oleh admin.
3
Setelah login, tampilan akan menyesuaikan role akun Anda. Nama dan role muncul di topbar kanan.
Tabel Role & Hak Akses
| Role | Akses Menu | Bisa Tambah/Edit/Hapus | Catatan |
| admin | Semua menu termasuk Users & Logs | Ya — semua fitur | Akses penuh, dapat mengelola user lain |
| operator | Semua kecuali Users | Ya — device, alert, ticket, IP, BGP, dll | Tidak bisa mengelola akun user |
| client | Dashboard, Devices (read), Alerts, Tickets, Reports | Tidak (tombol aksi disembunyikan) | Hanya lihat data site/device yang dikaitkan ke akun tersebut |
Tips Admin: Untuk menambah user baru, masuk ke menu Users (hanya muncul untuk admin). Masukkan Service Role Key Supabase jika diminta — key ini disimpan di localStorage browser, tidak di server.
AimBot AI Assistant
Tombol AimBot (otak di pojok kanan bawah) tersedia untuk admin dan operator saja. Client tidak dapat mengakses AimBot baik di dashboard maupun client portal.
📊
SECTION 03
Dashboard Utama
Dashboard adalah halaman pertama setelah login. Menampilkan ringkasan kondisi jaringan secara real-time dengan pembaruan otomatis setiap 30 detik.
Panel Statistik Utama (baris atas)
| Panel | Keterangan |
| Total Devices | Jumlah device aktif yang dipantau. Klik untuk membuka halaman Devices. |
| Online | Device yang berhasil di-ping dan memberikan respons dalam polling terakhir. |
| Offline | Device yang tidak merespons. Klik untuk filter ke halaman Devices → status offline. |
| Alerts Aktif | Jumlah alert yang belum resolved. Klik untuk ke halaman Alerts. |
| Avg Latency | Rata-rata latency seluruh device yang sedang online (dalam ms). |
Panel Grafana-style (Executive View)
- Network Uptime % (donut): Rasio online vs total device dalam rentang waktu yang dipilih (7h/24h/7d).
- Bandwidth Utilization: Grafik tren total TX dan RX (dalam Mbps) seluruh device.
- Latency Trend: Grafik rata-rata latency dari waktu ke waktu.
- Packet Loss % (Site): Persentase packet loss per site — dihitung dari data offline.
- Incident Heatmap: Frekuensi alert per jam dalam seminggu terakhir. Warna gelap = lebih banyak insiden.
- Incident Trend: Jumlah alert kritis yang dipicu per hari.
- Mini Map: Sebaran device secara geografis berdasarkan koordinat site.
Ganti Rentang Waktu
Gunakan tombol 7h / 24h / 7d di pojok kanan panel untuk mengubah rentang waktu semua panel sekaligus.
Top CPU / Top Latency
Menampilkan 5 device dengan CPU atau latency tertinggi saat ini. Klik nama device untuk membuka detail device.
Service Overview
Ringkasan status service check: HTTP/HTTPS, ICMP, TCP Port, DNS. Menampilkan jumlah service yang UP / DOWN / Warning.
Tips: Tombol sidebar bisa dilipat (klik ikon hamburger di topbar kiri) untuk memperluas area konten saat layar kecil.
💻
SECTION 04
Manajemen Devices
Menambahkan Device Baru
1
Klik menu Devices di sidebar → tombol "+ Tambah Device".
2
Isi form: Nama Device, IP Address, pilih Site, pilih Metode Poll.
3
Jika SNMP: isi SNMP Community (default: public). Jika RouterOS API: isi username dan password.
4
Klik Simpan. Device akan muncul di tabel dan mulai dipantau oleh collector dalam interval polling berikutnya.
Field Device
| Field | Keterangan | Contoh |
| Nama | Label yang ditampilkan di seluruh sistem | Core-Router-JKT |
| IP Address | IP yang dapat dijangkau oleh server collector | 10.10.1.1 |
| Site | Lokasi fisik device, harus sudah dibuat di menu Sites | Jakarta-DC |
| Poll Method | snmp / api / rest / ping | snmp |
| SNMP Community | Community string read-only (SNMPv2c) | public atau nama custom |
| Type | router / switch / server / firewall / access-point / other | router |
| Vendor | Mikrotik / Cisco / Juniper / Ubiquiti / dsb | Mikrotik |
| Model | Model perangkat (opsional, untuk dokumentasi) | CCR2004-1G-12S+2XS |
| Koordinat | Latitude, Longitude — untuk pin di peta | -6.2, 106.8 |
| Keterangan | Catatan bebas tentang device | Backbone link ke Surabaya |
Kode Status Device
| Status | Arti |
| online | Device menjawab ping dan data SNMP/API berhasil dikumpulkan. |
| offline | Device tidak menjawab ping dalam polling terakhir. Alert otomatis dikirim. |
| warning | Ping berhasil tapi ada threshold yang terlampaui (CPU/RAM tinggi, dll). |
| maintenance | Device sedang dalam mode maintenance. Alert ditahan, tidak trigger notifikasi. |
Mode Maintenance
Klik detail device → tombol "Maintenance". Saat aktif, collector tetap polling tapi semua alert untuk device tersebut ditahan. Cocok saat upgrade firmware atau perawatan terjadwal.
Detail Device (Klik Nama)
- Gauges: CPU%, RAM%, Latency, Uptime — real-time dari polling terakhir.
- Traffic Chart: Grafik TX/RX 1 jam terakhir per-device.
- Interface List: Semua interface SNMP beserta status UP/DOWN, kecepatan TX/RX saat ini.
- Service Checks: Daftar service check yang dikaitkan ke device ini.
Filter & Pencarian
Gunakan kolom pencarian di kanan atas tabel untuk filter berdasarkan nama atau IP. Filter status (All / Online / Offline / Warning / Maintenance) tersedia di kiri kolom pencarian.
Perhatian: Menghapus device akan menghapus SEMUA data metric, alert, dan service check yang terkait. Operasi ini tidak dapat dibatalkan.
🔔
SECTION 05
Alerts & Notifikasi
Alerts dibuat otomatis oleh collector ketika kondisi threshold terlampaui, dan di-resolve otomatis ketika kondisi kembali normal.
Tipe Alert Otomatis
| Tipe | Severity | Trigger Kondisi | Auto-Resolve |
| device_offline | critical | Ping gagal | Ya, saat ping kembali berhasil |
| high_cpu | warning | CPU usage > 85% | Ya, saat CPU turun < 80% |
| high_memory | warning | RAM usage > 90% | Ya, saat RAM turun < 85% |
| high_latency | warning | Latency > 150ms | Ya, saat latency kembali normal |
| bgp_session_down | critical | Session BGP state bukan Established | Ya |
| service_down | critical | Service check gagal | Ya |
| ip_monitor_down | critical | Target IP Monitor tidak merespons | Ya |
Exclude Alert dari SLA
1
Di halaman Alerts, klik baris alert yang ingin dikecualikan.
2
Klik tombol "Exclude from SLA". Isi alasan pengecualian.
3
Alert tetap tercatat tapi tidak dihitung dalam kalkulasi SLA uptime di halaman Reports.
Resolve Manual
Alert bisa di-resolve secara manual oleh operator/admin. Klik alert → "Resolve". Gunakan ini jika collector sempat mati dan alert tidak auto-resolved.
Badge merah di sidebar menu Alerts menampilkan jumlah alert aktif yang belum resolved.
Modul ticketing digunakan untuk melacak insiden jaringan dari awal hingga selesai, dengan dukungan SLA deadline dan template notifikasi klien.
Membuat Ticket Baru
1
Klik "+ Buat Ticket" di halaman Tickets.
2
Isi Judul, pilih Device terkait (opsional), pilih Prioritas (low/medium/high/critical).
3
Isi Deskripsi insiden. Atur SLA Deadline jika ada.
4
Klik Simpan. Ticket berstatus open dan muncul di daftar.
Alur Status Ticket
open → in_progress → resolved
↑ ↓
└──── reopen ────────────┘
Template Notifikasi Klien
Di setiap ticket, klik tombol "📢 Notif Klien" untuk membuka template notifikasi. Pilih tipe pesan:
- Gangguan Terdeteksi — notifikasi awal insiden ke klien
- Sedang Pengecekan — update bahwa tim sudah investigasi
- On Progress / Penanganan — update bahwa tim sedang handling
- Update Berkala — update situasi terkini dengan estimasi waktu
- Gangguan Selesai — notifikasi insiden telah diselesaikan
Edit teks sesuai kebutuhan, lalu klik "Kirim via WhatsApp" atau "Salin" untuk clipboard.
SLA Breach
Jika ticket masih open atau in_progress melewati SLA Deadline, status otomatis berubah menjadi SLA Breach. Panel statistik di atas tabel menampilkan jumlah breach hari ini.
Catatan: Pengecekan SLA dilakukan setiap siklus polling oleh collector. Pastikan collector berjalan agar SLA breach terdeteksi tepat waktu.
Monitor BGP session dari seluruh router yang dikonfigurasi menggunakan SNMP BGP MIB (RFC 1657) atau RouterOS API.
Yang Ditampilkan
- Peer IP: IP address BGP neighbor/peer
- AS Neighbor: Autonomous System Number peer
- State: Established / Active / Idle / Connect / OpenSent / OpenConfirm
- Prefixes Received: Jumlah prefix yang diterima dari peer
- Last Updated: Waktu terakhir data diperbarui oleh collector
- Device: Router yang meng-host BGP session ini
Alert BGP
Jika session BGP turun (state bukan Established), alert critical otomatis muncul di halaman Alerts.
Syarat BGP Monitor aktif: Device harus menggunakan metode poll snmp atau api (RouterOS). BGP MIB harus diaktifkan di router.
IP Monitor memantau IP atau hostname arbitrer di luar inventory device utama — cocok untuk memantau gateway ISP, server pihak ketiga, atau endpoint VPN.
Menambahkan Target IP Monitor
1
Buka menu IP Monitor → klik "+ Tambah Target".
2
Isi Label (nama tampilan) dan IP / Hostname target.
3
Pilih Tipe: gateway / server / endpoint / custom.
4
Klik Simpan. Collector akan mulai memantau target ini pada siklus polling berikutnya.
Target yang down akan memunculkan alert ip_monitor_down di halaman Alerts.
🗺️
SECTION 09
Peta Sebaran Device
Menampilkan sebaran device secara geografis menggunakan Leaflet.js + OpenStreetMap. Pin berwarna sesuai status device.
Warna Pin Peta
| Warna | Status |
| 🟢 Hijau | Online — device merespons normal |
| 🔴 Merah | Offline — device tidak merespons |
| 🟡 Kuning | Warning — online tapi ada threshold terlampaui |
| ⚫ Abu | Maintenance — sedang dalam mode maintenance |
Klik Pin
Klik pin device di peta untuk melihat popup berisi nama, IP, status, latency terakhir, dan link ke detail device.
Mengatur Koordinat Device
Koordinat device diambil dari data Site yang dikaitkan ke device tersebut. Pastikan setiap site memiliki koordinat latitude/longitude yang diisi dengan benar di menu Sites.
Service Checks memantau ketersediaan layanan spesifik pada device/server — bukan hanya ping, tapi koneksi ke port atau URL tertentu.
Tipe Service Check
| Tipe | Keterangan | Contoh Target |
| http / https | Cek respons HTTP. Status 2xx/3xx = UP. | http://192.168.1.1 |
| tcp | Cek apakah port TCP terbuka. | 192.168.1.1:22 |
| icmp | Ping ke target tertentu (berbeda dari device IP utama). | 8.8.8.8 |
| dns | Resolve DNS query dan cek response. | example.com |
Menambahkan Service Check
Buka halaman Service Checks → "+ Tambah". Pilih device, tipe, nama layanan, dan target. Interval check mengikuti POLL_INTERVAL collector.
Halaman Reports memiliki empat tab untuk analisis dan pembuatan laporan.
Tab Traffic
Grafik tren traffic (TX/RX dalam Mbps) untuk device atau site tertentu. Pilih device/site, rentang waktu, lalu klik Load. Grafik interaktif menggunakan Chart.js — hover untuk nilai per titik waktu.
Tab SLA Report
Kalkulasi uptime SLA per device atau per site dalam rentang tanggal yang dipilih. Rumus uptime: waktu_online / total_waktu × 100%. Alert yang di-exclude dari SLA tidak dihitung sebagai downtime.
Tab Alert History
Riwayat semua alert dalam rentang tanggal tertentu — bisa difilter per device, tipe alert, dan severity. Menampilkan durasi insiden (triggered_at hingga resolved_at).
Tab Generate Report
Buat laporan PDF atau Excel siap kirim ke manajemen/klien. Pilih:
- Scope: Per device, per site, atau semua
- Rentang tanggal
- Format: PDF atau XLSX (Excel)
- Konten: Pilih bagian mana yang disertakan (Traffic, SLA, Alerts, dsb)
Tips: Untuk laporan bulanan klien, gunakan filter Scope → pilih Client/Site tertentu agar data yang muncul hanya milik client tersebut.
Sites adalah unit lokasi fisik yang mengelompokkan device. Setiap device harus dikaitkan ke satu site.
Field Site
| Field | Keterangan |
| Nama Site | Nama unik untuk lokasi (contoh: Jakarta-HQ, Surabaya-DC) |
| Kota / Region | Untuk pengelompokan di filter laporan dan dashboard |
| Alamat | Alamat fisik lengkap (opsional, untuk dokumentasi) |
| Koordinat | Latitude & Longitude — wajib jika device ingin muncul di peta |
| Client | Nama klien yang memiliki/menyewa site ini — untuk filter di Reports dan Client Portal |
| Keterangan | Catatan tambahan |
Menghapus Site
Perhatian: Site tidak dapat dihapus jika masih ada device yang terkait. Hapus atau pindahkan semua device di site tersebut terlebih dahulu.
Network Tools adalah halaman terpisah (network-tools.html) yang berisi berbagai utilitas jaringan. Buka via sidebar → Network Tools ↗.
| Tool | Fungsi |
| Device Quick Check | Cek cepat device dari inventory — ping, SNMP, port check sekaligus |
| Ping Test | ICMP ping ke IP/hostname target, tampilkan RTT & packet loss |
| Bulk Ping | Ping ke banyak IP sekaligus (paste list), tampilkan status per IP |
| Traceroute | Traceroute ke target, tampilkan hop-by-hop dengan latency |
| DNS Lookup | Query DNS (A, AAAA, MX, NS, TXT, CNAME, PTR) menggunakan 1.1.1.1 |
| Port Checker | Cek apakah port TCP tertentu terbuka di host target |
| IP Info / GeoIP | Informasi geografis & ASN dari IP address publik |
| Subnet Calculator | Hitung network address, broadcast, range host dari CIDR |
| Visual Subnet | Tampilkan subnet secara visual, subdivisi & alokasi blok |
| WHOIS / RDAP | Lookup data registrasi domain atau IP |
| SSL Checker | Cek sertifikat SSL domain — expiry, chain, issuer |
| MTR / Path | Kombinasi traceroute + ping, tampilkan packet loss per hop |
| BGP ASN Lookup | Cari prefix, peers, dan info routing BGP suatu ASN |
| RBL / DNSBL | Cek apakah IP masuk blacklist email (spam database) |
| Speed Test | Uji kecepatan bandwidth menggunakan Cloudflare Speed Test |
| IPv6 Tools | Konversi, expand, compress, dan hitung prefix IPv6 |
Catatan: Tool seperti Ping, Traceroute, MTR, dan Port Checker dieksekusi melalui api.py yang berjalan di server. Pastikan api.py aktif dan dapat diakses dari browser.
Client Portal (client-portal.html) adalah tampilan khusus untuk klien — hanya menampilkan data site & device yang terkait dengan akun klien tersebut.
Cara Akses Client Portal
1
Buka client-portal.html (atau lewat link yang diberikan oleh admin).
2
Login menggunakan akun dengan role client.
3
Portal menampilkan hanya device & site milik klien tersebut.
Fitur di Client Portal
- Status real-time semua device klien (online/offline, CPU, latency)
- Grafik traffic bandwidth per device
- Riwayat alert dalam 7 hari terakhir
- SLA uptime bulan berjalan
- Informasi kontak NOC/support
Setup Akun Client
1
Admin buat user di menu Users dengan role client.
2
Di tabel profile_sites Supabase, tambahkan baris yang menghubungkan user_id akun client ke site_id yang relevan.
3
Selesai — klien login dan hanya melihat data site yang dikaitkan.
🛠️
SECTION 16
Troubleshooting
Collector berhenti mendadak
httpx.ReadTimeout / httpx.ConnectTimeout
Supabase tidak merespons dalam batas waktu. Sejak versi terbaru, collector akan retry otomatis 3× sebelum melewati metric tersebut. Collector tidak akan crash karena timeout.
Jika masih crash, cek:
- Koneksi internet server ke Supabase (coba curl https://[project].supabase.co)
- SUPABASE_KEY di .env sudah benar dan tidak expired
- Log di LOG_DIR untuk detail error
Device selalu offline padahal bisa di-ping
- Pastikan collector berjalan di server yang bisa reach IP device tersebut.
- Cek firewall — ICMP (ping) harus diizinkan dari IP server ke IP device.
- Coba jalankan ping [IP_device] langsung dari terminal server collector.
Data SNMP tidak masuk (CPU/RAM kosong)
- Pastikan SNMP v2c diaktifkan di device dengan community string yang sama seperti yang diisi di field device.
- Port UDP 161 di device harus open dari IP server collector.
- Coba manual: snmpwalk -v2c -c public [IP_device] sysDescr
- Beberapa device perlu OID custom — cek dokumentasi vendor.
Dashboard tidak load / data tidak muncul
- Buka browser console (F12 → Console). Cari error SUPABASE_URL atau network error.
- Pastikan config.js sudah diisi dengan URL dan Key Supabase yang benar.
- Cek Supabase RLS (Row Level Security) — pastikan policy untuk tabel devices, metrics, dst sudah dikonfigurasi.
Traffic aggregat selalu 0 atau tidak akurat
Status: Fixed. Bug di collector yang menyebabkan total_rx bisa bernilai None (counter wrap detection untuk TX dan RX berjalan secara independen) sudah diperbaiki. Pastikan menggunakan versi terbaru collector.py.
AIMS Network Monitoring — Dokumentasi Internal · Versi: