Server Monitoring
Pendahuluan
Server monitoring adalah praktik pemantauan metrik kesehatan dan performa server secara terus-menerus untuk mendeteksi anomali, memastikan ketersediaan, dan mengoptimalkan sumber daya. Monitoring yang efektif memungkinkan tim operasi merespons masalah sebelum berdampak pada pengguna.
Metrik Utama Server
Server dimonitor berdasarkan empat kategori metrik utama:
CPU - Utilisasi CPU (persen idle, user, system, iowait), load average (1, 5, 15 menit), context switches per detik, dan run queue length. Lonjakan CPU yang tidak wajar bisa mengindikasikan serangan DDoS atau proses jahat.
Memory - RAM used/free, swap usage, cached & buffers, memory pressure (pages fault per detik). Kehabisan memory menyebabkan OOM Killer yang dapat menonaktifkan proses penting.
Disk - Utilisasi partisi (%), I/O latency (await, svctm), IOPS (read/write per detik), dan disk space trending. Disk penuh pada partisi log dapat menghilangkan jejak forensik.
Network I/O - Throughput (bytes in/out per detik), packet drops, error counters, dan TCP connection states (ESTABLISHED, TIME_WAIT, SYN_RCVD). Lonjakan SYN_RCVD bisa menandakan SYN flood attack.
Monitoring Tools
Prometheus + Grafana
Stack modern yang populer untuk time-series monitoring. Prometheus mengumpulkan metrik via HTTP pull model dari exporter (node_exporter untuk metrik OS). Grafana menyediakan dashboard visual dan alerting. Keunggulan: arsitektur pull, query language (PromQL) yang ekspresif, dan ekosistem exporter yang luas.
Nagios
Tool monitoring legacy namun masih banyak digunakan. Menggunakan model plugin-based dan agent (NRPE - Nagios Remote Plugin Executor) atau NRDP. Cocok untuk monitoring infrastruktur heterogen dengan checks CPU, disk, service uptime. Nagios XI menambahkan antarmuka web dan reporting.
Zabbix
Platform monitoring all-in-one dengan kemampuan auto-discovery, template berbasis metrik, dan dukungan SNMP, IPMI, JMX, serta agent native. Zabbix menawarkan trend forecasting dan anomaly detection built-in.
Netdata
Tool monitoring real-time granular dengan visualisasi per detik. Netdata menggunakan sedikit resource dan menampilkan metrik hingga ribuan dimensi. Cocok untuk troubleshooting real-time dan monitoring performa microservices.
Alerting Rules dan Thresholds
Alerting memerlukan definisi threshold yang tepat untuk menghindari false positive:
- Static threshold - CPU > 90% selama 5 menit → Warning, > 95% → Critical
- Dynamic threshold - Learning dari data historis, mendeteksi deviasi dari baseline
- Anomaly detection - Menggunakan machine learning (Prometheus + Anomaly Detection engine)
- Rate-based - Lonjakan traffic dalam waktu singkat
- Predictive - Prediksi disk penuh dalam 7 hari
SNMP, Agent-based vs Agentless, Blackbox vs Whitebox
SNMP (Simple Network Management Protocol) - Protokol standar untuk monitoring perangkat jaringan dengan OID (Object Identifier). Versi: SNMPv2c (community string) dan SNMPv3 (autentikasi + enkripsi).
Agent-based vs Agentless:
- Agent-based - Software terpasang di server (Zabbix agent, Prometheus node_exporter). Memberikan metrik lebih granular (proses per proses, koneksi per port). Overhead resource ringan namun perlu manajemen instalasi.
- Agentless - Monitoring via protokol jarak jauh (SNMP, WMI, SSH). Tanpa instalasi software, tetapi metrik lebih terbatas dan berpotensi masalah network overhead.
Blackbox vs Whitebox:
- Blackbox monitoring - Memantau dari luar (probe HTTP, ICMP ping, port check). Mengetahui apakah service hidup dari perspektif pengguna, tanpa insight internal.
- Whitebox monitoring - Memantau dari dalam (metrik aplikasi, heap memory JVM, query latency DB). Memberikan visibilitas mendalam ke kondisi internal sistem.
Server monitoring yang baik mengkombinasikan semua pendekatan - agent-based untuk granularitas, blackbox untuk perspektif pengguna, dan whitebox untuk insight aplikasi.