A

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.

11 menit bacaAhmad Apandi

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:

  1. Setiap metric punya ML model sendiri, trained di edge (di node itu sendiri, bukan di cloud)
  2. Model belajar pola normal: daily seasonality, weekly patterns, trend
  3. Saat metric deviate dari pola, anomaly score naik
  4. 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. Pakai ram untuk ephemeral, alloc untuk 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-telemetry saat 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

Artikel terkait