Netdata: Real-Time Monitoring for Your Homelab
Netdata is a monitoring agent that works differently from most monitoring tools: it collects metrics every second, requires essentially no configuration, and makes those metrics immediately accessible in a built-in web interface. For homelabbers who want visibility into their systems without spending days configuring a Prometheus + Grafana stack, Netdata is often the fastest path to useful monitoring.
Photo by Logan Voss on Unsplash
What Makes Netdata Different
Most monitoring setups require you to:
- Install a metrics collector (Prometheus node exporter, etc.)
- Run a time-series database (Prometheus server)
- Set up a visualization layer (Grafana)
- Configure dashboards for each thing you want to monitor
Netdata collapses this into a single agent with a built-in interface. You install it, and within minutes you have detailed per-second metrics for CPU, memory, disk, network, containers, applications, and more — with no manual configuration.
The trade-offs: less flexibility than a full Grafana/Prometheus stack, and the built-in interface is less polished than a well-configured Grafana dashboard. But for getting monitoring up quickly, nothing beats it.
Installation
One-line install:
curl https://get.netdata.cloud/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh
This installs the stable release, sets up a systemd service, and starts collecting metrics immediately. No configuration required.
Docker:
version: '3'
services:
netdata:
image: netdata/netdata:latest
container_name: netdata
hostname: your-hostname
ports:
- "19999:19999"
cap_add:
- SYS_PTRACE
security_opt:
- apparmor:unconfined
volumes:
- netdataconfig:/etc/netdata
- netdatalib:/var/lib/netdata
- netdatacache:/var/cache/netdata
- /etc/passwd:/host/etc/passwd:ro
- /etc/group:/host/etc/group:ro
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /etc/os-release:/host/etc/os-release:ro
restart: unless-stopped
volumes:
netdataconfig:
netdatalib:
netdatacache:
Access the interface at http://your-server-ip:19999.
What Netdata Monitors Out of the Box
Without configuration, Netdata auto-detects and monitors:
System:
- CPU usage per core, CPU frequency, CPU pressure
- Memory (RAM, swap, shared, hugepages)
- Disk I/O, disk utilization, disk space
- Network interfaces (traffic, errors, drops, packets)
- System load averages
- Context switches, interrupts
Applications:
- Processes (memory, CPU, file descriptors per process group)
- Applications defined in
/etc/netdata/apps_groups.conf
Containers and virtualization:
- Docker container CPU, memory, network, and I/O per container
- cgroups metrics for LXC containers
- KVM and Xen VMs (if applicable)
Services (auto-detected):
- MySQL/MariaDB, PostgreSQL, MongoDB
- Redis, Memcached
- Nginx, Apache, Caddy
- Elasticsearch
- Many more — Netdata has 800+ integrations
Network services:
- DNS query rates (if running a local DNS)
- SNMP devices (if configured)
The depth of default metrics is impressive. For a typical homelab server, you get useful, actionable data immediately.
Like what you're reading? Subscribe to HomeLab Starter — free weekly guides in your inbox.
The Web Interface
Netdata's built-in interface shows a scrollable dashboard of real-time charts. Each chart updates every second and shows the last few minutes of history. The interface is functional but not particularly beautiful.
Key features:
- Real-time updates — 1-second granularity means you can watch what happens during a backup, a build, or a spike
- Netdata Spaces (cloud) — connect multiple agents to a central cloud interface for a unified view
- Anomaly detection — Netdata uses ML to flag unusual patterns automatically
- Alarms — configurable alerts with email, Slack, PagerDuty, and other notifications
For local monitoring, the built-in interface is enough. For a multi-server homelab, Netdata Cloud (free tier available) gives you a central view of all nodes.
Metrics Retention
By default, Netdata keeps:
- Per-second data for the last hour
- Per-minute data for the last 24 hours
- Per-hour data for the last week
For longer retention, you can either increase the disk space allocation or use Netdata's backend support to export to Prometheus or InfluxDB for long-term storage.
Alerts and Notifications
Netdata comes with hundreds of pre-configured alerts for common issues — disk filling up, RAM pressure, network errors, etc. These activate automatically without configuration.
To add Slack notifications:
# Edit /etc/netdata/health_alarm_notify.conf
SEND_SLACK="YES"
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/..."
SLACK_CHANNEL="#alerts"
Then restart Netdata. You'll receive Slack messages when conditions trigger.
Netdata vs Grafana + Prometheus
| Aspect | Netdata | Grafana + Prometheus |
|---|---|---|
| Setup time | Minutes | Hours to days |
| Configuration | Minimal | Significant |
| Default coverage | Excellent | Requires exporter setup |
| Dashboard quality | Functional | Excellent (with effort) |
| Long-term retention | Limited by default | Unlimited |
| Multi-host view | Netdata Cloud or parent-child | Prometheus federation |
| Alerting | Built-in, 800+ pre-configured | Alertmanager (complex) |
| Resource usage | Low-moderate | Moderate-high |
Choose Netdata if: You want monitoring up quickly, you don't need custom dashboards, or you're new to homelab monitoring.
Choose Grafana + Prometheus if: You need custom dashboards, want full control over metrics, need very long retention, or are comfortable with the configuration overhead.
They're not mutually exclusive. Many homelabbers run Netdata on individual nodes for real-time visibility and Prometheus + Grafana for long-term trending and custom dashboards.
Parent-Child Setup for Multiple Servers
For a multi-server homelab, Netdata supports a parent-child model: lightweight agents on each node stream metrics to a parent node, which stores and serves them.
On the child nodes (/etc/netdata/stream.conf):
[stream]
enabled = yes
destination = parent-node-ip:19999
api key = your-shared-api-key
On the parent node:
[your-shared-api-key]
enabled = yes
history = 3600
memory mode = ram
health enabled = yes
The parent's web interface then shows all nodes in a unified view without requiring Netdata Cloud.
Is Netdata Right for Your Homelab?
Netdata is an excellent choice if:
- You're new to monitoring and want to start quickly
- You want per-second visibility without configuration
- You have one to ten servers and don't need complex cross-node correlation
- You want comprehensive default alerting without manual setup
Consider alternatives if:
- You need custom dashboards with non-standard metrics
- You're already invested in Prometheus/Grafana
- You need very long retention at full resolution
- You're running a large fleet where Netdata's per-node model adds complexity
For most homelabbers, Netdata is the fastest way to meaningful monitoring. You can always migrate to a more complex stack later — but you might find you don't need to.
