Netdata: Real-Time Monitoring dengan ML Anomaly Detection, Zero Config
Netdata adalah platform monitoring infrastruktur open-source dengan per-second metrics, 800+ integrations otomatis, dan ML anomaly detection di edge — alternatif Prometheus + Grafana yang lebih efisien.
Masalahnya
Monitoring infrastruktur itu like bikin summary akhir tahun: biasanya telat, tidak lengkap, dan tidak membantu saat krisis terjadi.
Pilihan klasik punya trade-off masing-masing:
- Prometheus + Grafana standar de facto, tapi butuh config manual untuk setiap exporter, dashboard dibangun dari nol, dan storage cost naik tajam saat retention diperpanjang
- Datadog / New Relic SaaS lengkap dan polished, tapi pricing per-host + per-GB bisa ratusan ribu dollar per tahun di skala menengah
- Zabbix / Nagios legacy, warisan good enough tapi UI jadul dan alerting tidak real-time
- OpenObserve (artikel sebelumnya) fokus di logs + traces, tapi untuk metrics real-time per-detik masih butuh solusi lain
Yang dicari banyak sysadmin dan DevOps: per-second granularity (bukan per-menit), auto-discovery tanpa konfigurasi, dan anomaly detection yang tidak butuh data science team.
Netdata menjawab semua itu sejak 2013, sebelum observability jadi buzzword.
Apa itu Netdata
Netdata adalah platform monitoring infrastruktur open-source yang dirancang untuk real-time, per-second metrics collection dengan zero configuration. 80k+ GitHub stars, CNCF member, dipakai oleh Amazon, Netflix, Google, Samsung, dan ribuan tim DevOps worldwide.
| Metrik | Nilai |
|---|---|
| Lisensi | GPLv3+ (Agent), Cloud free + paid |
| GitHub stars | 80.1k+ |
| Bahasa | C (agent core), Python/Go (collectors) |
| Resource usage | ~5% CPU, 150 MiB RAM (default) |
| Collection rate | Per-second (1s latency) |
| Integrations | 800+ |
| Platform | Linux, FreeBSD, macOS, Windows, Docker, K8s |
Filosofi intinya: monitoring tidak boleh telat. Kalau CPU spike terjadi di detik ke-3, Anda harus bisa lihat di detik ke-4 — bukan di menit berikutnya setelah Prometheus scrape interval lewat.
Yang membedakan Netdata
Per-second collection, bukan per-minute
Mayoritas monitoring tool scrape metrics setiap 15-60 detik. Netdata collect setiap detik, visualisasi dengan latency 1 detik.
Kenapa ini penting? Banyak masalah infrastruktur bersifat transient: CPU spike 5 detik yang menyebabkan request timeout, memory leak yang trigger OOM killer dalam 10 detik, network micro-burst yang drop packet. Dengan granularity per-menit, semua ini tidak terlihat.
Prometheus (15s scrape):
──────●──────────────●──────────────●──────────
Missed: 14s of data between points
Netdata (1s collection):
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
Captured: every second, no gaps
Zero configuration: auto-discovery
Install Netdata, buka browser. Selesai. Tidak perlu:
- Definisikan scrape target
- Pilih exporter
- Bangun dashboard dari template kosong
- Tulis PromQL untuk chart basic
Netdata auto-detects 800+ integrations: nginx, PostgreSQL, Redis, Docker, Kubernetes, MySQL, MongoDB, GPU Nvidia, IPMI, S.M.A.R.T disks, systemd services, TCP/UDP sockets per PID, dan ratusan lainnya.
Dashboard auto-generated berdasarkan apa yang ditemukan. Install di server dengan PostgreSQL → langsung dapat dashboard PostgreSQL. Install di node dengan Docker → langsung dapat container metrics.
ML anomaly detection di edge
Netdata tidak hanya collect metrics. Setiap agent melatih multiple ML models per metric menggunakan perilaku terbaru. Tidak ada shared model atau threshold manual.
Cara kerjanya:
- Setiap metric punya ML model sendiri, trained di edge (di node itu sendiri, bukan di cloud)
- Model belajar pola normal: daily seasonality, weekly patterns, trend
- Saat metric deviate dari pola, anomaly score naik
- Alert bisa trigger berdasarkan anomaly score, bukan threshold static
Ini menyelesaikan masalah klasik threshold alerting: “CPU 80% itu normal atau anomaly?” Tergantung konteks. Senin jam 9 pagi mungkin normal. Sabtu jam 3 pagi mungkin tanda masalah. ML tahu bedanya.
Resource efficiency: ~0.5 bytes per sample
University of Amsterdam studi 2023 menemukan Netdata adalah monitoring tool paling energy-efficient untuk Docker-based systems. Juga unggul di CPU usage, RAM usage, dan execution time dibanding kompetitor.
Rahasianya: tiered storage dengan compression ZSTD.
| Tier | Resolution | Storage cost |
|---|---|---|
| Tier 0 | Per-second | ~0.5 bytes/sample |
| Tier 1 | Per-minute | Lebih kecil lagi |
| Tier 2 | Per-hour | Untuk long-term archive |
Query otomatis pilih tier berdasarkan zoom level dashboard. Lihat data 1 jam terakhir → Tier 0 (per-detik). Lihat data 6 bulan → Tier 2 (per-jam). Semua transparan.
Arsitektur: distributed by design
Netdata bukan server monolitik yang collect semua data. Ini distributed observability pipeline:
Node A (Agent) Node B (Agent) Node C (Agent)
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Collect 1s │ │ Collect 1s │ │ Collect 1s │
│ Store local │ │ Store local │ │ Store local │
│ ML per metric│ │ ML per metric│ │ ML per metric│
│ Alerts │ │ Alerts │ │ Alerts │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
│ Stream (real-time) │ Stream │ Stream
▼ ▼ ▼
┌──────────────────────────────────────────────────────────┐
│ Netdata Parent │
│ Centralized dashboards, longer retention, │
│ alert configuration, metric archival │
│ Export to Prometheus / InfluxDB / Graphite / etc. │
└──────────────────────────────────────────────────────────┘
│
│ (optional)
▼
┌──────────────────────────────────────────────────────────┐
│ Netdata Cloud │
│ Multi-node views, SSO, RBAC, horizontal scalability │
│ Free community tier, no metric storage centralization │
└──────────────────────────────────────────────────────────┘
Setiap agent punya pipeline modular lengkap: Collect → Store → Learn → Detect → Check → Stream → Archive → Query → Score.
Yang penting: data stays local. Agent store metrics di node itu sendiri. Streaming ke Parent opsional. Cloud opsional. Tidak ada forced centralization seperti SaaS tools.
Yang bisa dimonitor
Netdata monitor dari hardware level sampai application layer:
| Kategori | Contoh |
|---|---|
| System | CPU, memory, disk, network, kernel, syscall |
| Hardware | GPU (Nvidia/AMD/Intel), fans, temperature, power, S.M.A.R.T, RAM EDAC, PCI AER, IPMI |
| Containers | Docker, containerd, LXC/LXD, Kubernetes, cgroups |
| VMs | KVM, qemu, libvirt, Proxmox, Hyper-V |
| Databases | PostgreSQL, MySQL, MongoDB, Redis, Oracle |
| Web | nginx, Apache, Traefik, HAProxy, Caddy |
| Network | TCP/UDP sockets per PID, firewall, protocols, SNMP |
| Logs | systemd-journald, Windows Event Log, ETW |
| Cloud | AWS, GCP, Azure infrastructure metrics |
| Apps | 800+ integrations via auto-discovery |
Di Linux, Netdata juga monitor kernel errors secara continuous: GPU errors, PCI AER, RAM EDAC, NVMe health, power supply failures, voltage readings.
Quick start
Linux (one-line installer)
wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh
Atau:
curl -Ss https://my-netdata.io/kickstart.sh | sh
Installer detect distro, install dependencies, build agent dari source atau pasang binary pre-built. Setelah selesai, UI ada di http://localhost:19999.
Docker
docker run -d --name=netdata \
-p 19999:19999 \
-v netdataconfig:/etc/netdata \
-v netdatalib:/var/lib/netdata \
-v netdatacache:/var/cache/netdata \
-v /etc/passwd:/host/etc/passwd:ro \
-v /etc/group:/host/etc/group:ro \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /etc/os-release:/host/etc/os-release:ro \
--restart unless-stopped \
--cap-add SYS_PTRACE \
--cap-add SYS_ADMIN \
--security-opt apparmor=unconfined \
netdata/netdata
Butuh akses ke /proc, /sys, dan passwd/group host untuk auto-discovery. Mode read-only (:ro) aman.
macOS
brew install netdata
brew services start netdata
Yang langsung dapat setelah install
Tanpa konfigurasi tambahan:
- Dashboard CPU, RAM, disk, network per-detik
- Per-process resource usage (top-like, tapi dengan chart)
- Docker container metrics (kalau Docker jalan)
- Systemd service status dan resource
- TCP/UDP connection per PID
- Disk I/O per-disk, per-mount-point
- Kernel metrics: syscall rate, interrupt, context switch
- Hardware sensors (temperature, fan, power) kalau tersedia
Semua auto-generated. Tidak perlu bikin satu chart pun.
Streaming: multi-node setup
Untuk monitor banyak server, setup parent-child streaming.
Di child node (/etc/netdata/stream.conf):
[stream]
enabled = yes
destination = parent-ip:19999
api key = your-secret-key-here
Di parent (/etc/netdata/stream.conf):
[API_KEY]
enabled = yes
allow from = *
default history = 3600
default memory mode = dbengine
health enabled by default (auto) = yes
default postpone alarms on connect seconds = 60
Parent menerima stream real-time dari semua child. Dashboard parent menampilkan semua node. Alert bisa dikonfigurasi central di parent. Retention lebih panjang di parent dengan disk lebih besar.
Netdata Cloud (opsional, free tier)
Cloud tidak menyimpan metrics. Ia adalah view layer di atas agents yang sudah berjalan.
Yang didapat dengan Cloud:
- Akses dari mana saja tanpa expose port 19999
- Multi-node dashboard gabungan
- UI config untuk alert dan collector (tidak perlu edit YAML)
- SSO dan RBAC untuk tim
- Horizontal scalability tanpa setup parent sendiri
Yang tetap lokal: semua metric data. Cloud hanya terima metadata dan dashboard config. Agent tetap jalan independen bahkan jika Cloud down.
Perbandingan
Netdata vs Prometheus + Grafana
| Aspek | Netdata | Prometheus + Grafana |
|---|---|---|
| Collection rate | Per-second (1s) | Typical 15s scrape |
| Setup | Zero config, auto-discovery | Manual exporter + scrape config |
| Dashboard | Auto-generated | Build manual dari nol |
| ML anomaly detection | Built-in, per metric | Butuh tambahan (e.g. Cortex, ML plugin) |
| Alerting | Built-in, 100+ pre-configured | Alertmanager terpisah |
| Resource usage | ~5% CPU, 150 MiB RAM | Prometheus butuh lebih banyak di skala besar |
| Query language | Tidak perlu (UI interaktif) | PromQL (learning curve) |
| Storage cost | ~0.5 bytes/sample, tiered | Bergantung pada retention config |
| Distributed | Native parent-child streaming | Federation atau Thanos/Cortex |
Netdata bukan pengganti Prometheus di semua use case. Tapi untuk real-time monitoring dan troubleshooting, granularity per-detik dan zero-config adalah game changer.
Netdata vs Datadog
| Aspek | Netdata | Datadog |
|---|---|---|
| Model | Self-hosted agent + optional cloud | SaaS only |
| Pricing | Free (OSS), Cloud free tier | Per-host + per-GB, mahal di skala |
| Metric granularity | Per-second | Per-10s atau per-minute tergantung plan |
| Data location | Lokal di node Anda | Di Datadog cloud |
| ML | Per-metric, edge-based | Centralized |
| Vendor lock-in | Tidak ada | Tinggi |
Netdata vs Zabbix
| Aspek | Netdata | Zabbix |
|---|---|---|
| Polling rate | Per-second | Typical 30s-60s |
| Setup complexity | One-line install | Server + DB + agent config |
| Dashboard | Real-time, interactive | Batch-oriented, kurang interaktif |
| Anomaly detection | ML built-in | Threshold-based (manual) |
| Modern stack | Ya (C, Go, Python, React UI) | Legacy (PHP frontend, C server) |
Kapan pakai Netdata
| Situasi | Saran |
|---|---|
| Butuh real-time troubleshooting (per-detik) | Netdata sangat cocok |
| Homelab / VPS kecil, resource terbatas | Netdata ringan, zero overhead |
| Tim kecil tanpa dedidacted observability engineer | Auto-discovery hemat waktu setup |
| Multi-node, multi-cloud | Streaming + Cloud free tier cukup |
| Sudah investasi besar di Prometheus stack | Netdata bisa co-exist, export ke Prometheus |
| Butuh log analytics skala besar (terabyte/hari) | Pair dengan OpenObserve atau Loki |
| Butuh custom dashboard sangat spesifik | Grafana lebih fleksibel untuk custom viz |
| Compliance: data tidak boleh keluar infra | Netdata agent fully self-hosted |
Catatan praktis
- Memory mode
dbengine(default) adalah sweet spot untuk kebanyakan use case. Pakairamuntuk ephemeral,allocuntuk embedded device. - ML bisa dimatikan kalau resource sangat terbatas. Tapi ini fitur utama — coba pertahankan kalau bisa.
- UI closed-source tapi free. Netdata UI di-deliver via CDN, license NCUL1 (bukan open-source tapi free to use). Agent core GPLv3. Kalau policy melarang CDN, UI bisa di-host lokal dari versi packaged.
- Telemetry anonymous bisa di-disable. Tambah
--disable-telemetrysaat install, atau buat file/etc/netdata/.opt-out-from-anonymous-statistics. - Disk flush setiap 17 menit. Netdata tidak menulis disk terus-menerus. Metric di-buffer di RAM, flush ke disk setiap 17 menit dengan ZSTD compression. I/O impact minimal.
- Export ke time-series DB lain. Netdata bisa stream metric ke Prometheus remote write, InfluxDB, Graphite, OpenTSDB, TimescaleDB, dan elastic. Cocok kalau sudah ada stack tapi butuh per-second granularity di specific node.
Penutup
Netdata adalah bukti bahwa monitoring real-time tidak butuh infrastruktur mahal atau tim data science. Install satu perintah, dapat per-second metrics dari 800+ source, ML anomaly detection, dan dashboard yang langsung berguna.
Untuk sysadmin yang lelah dengan alert yang telat, dashboard yang harus dibangun manual, dan threshold yang tidak adaptif, Netdata layak dicoba di satu node production. Setup 60 detik, lihat sendiri bedanya granularity per-detik saat troubleshooting issue berikutnya.
“People get addicted to Netdata. Once you use it on your systems, there’s no going back.”
Sumber: github.com/netdata/netdata · learn.netdata.cloud · Netdata vs Prometheus comparison