Netdata is an open-source monitoring agent that collects thousands of metrics per second with near-zero configuration and visualizes them on a live web dashboard (default port 19999). It auto-detects services (databases, web servers, containers, Kubernetes) through 800+ collectors and ships with anomaly detection and a built-in alerting engine.
Installation
| Method | Command |
|---|
| Universal kickstart | wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh |
| curl variant | curl https://get.netdata.cloud/kickstart.sh > /tmp/k.sh && sh /tmp/k.sh |
| Debian/Ubuntu pkg | sudo apt install netdata |
| Fedora/RHEL pkg | sudo dnf install netdata |
| Docker | docker run -d --name=netdata -p 19999:19999 --cap-add SYS_PTRACE netdata/netdata |
| Helm (Kubernetes) | helm install netdata netdata/netdata |
After install, open http://localhost:19999 (or the server’s IP).
Service Management
| Command | Description |
|---|
sudo systemctl start netdata | Start the agent |
sudo systemctl enable netdata | Start on boot |
sudo systemctl restart netdata | Restart (apply config changes) |
sudo systemctl status netdata | Check status |
sudo journalctl -u netdata -f | Tail agent logs |
netdatacli reload-health | Reload alarms without a full restart |
netdatacli reload-labels | Reload host labels |
netdatacli shutdown-agent | Stop the agent gracefully |
Configuration
Always edit config with the edit-config wrapper — it copies the stock file from /usr/lib/netdata/conf.d into /etc/netdata so upgrades don’t clobber it.
cd /etc/netdata
sudo ./edit-config netdata.conf # main agent config
sudo ./edit-config health_alarm_notify.conf # notifications
sudo ./edit-config go.d.conf # enable/disable Go collectors
Setting (in netdata.conf) | Purpose |
|---|
[global] update every = 1 | Collection interval in seconds |
[global] history / dbengine | Retention / on-disk database tier sizes |
[web] bind to = * | Network interfaces the dashboard listens on |
[web] default port = 19999 | Dashboard port |
[plugins] | Toggle whole plugin groups on/off |
Collectors (Plugins)
| Task | How |
|---|
| List config files per collector | cd /etc/netdata && sudo ./edit-config go.d/CONFIG.conf |
| Enable a module (e.g. nginx) | sudo ./edit-config go.d/nginx.conf then point it at the status URL |
| Debug a Go collector | sudo /usr/libexec/netdata/plugins.d/go.d.plugin -d -m nginx |
| Common auto-detected modules | nginx, apache, mysql, postgres, redis, docker, systemd units, disks, network, sensors |
Health & Alarms
Alarm definitions live in /etc/netdata/health.d/*.conf.
cd /etc/netdata
sudo ./edit-config health.d/cpu.conf # tweak a built-in alarm
netdatacli reload-health # apply
| Command | Description |
|---|
curl http://localhost:19999/api/v1/alarms?all | List all alarms and current state (JSON) |
curl http://localhost:19999/api/v1/info | Agent info, version, collectors |
Edit health_alarm_notify.conf | Wire up email, Slack, PagerDuty, Discord, etc. |
Useful API Endpoints
| Endpoint | Returns |
|---|
/api/v1/charts | All available charts on the node |
/api/v1/data?chart=system.cpu | Time-series data for a chart |
/api/v1/allmetrics?format=prometheus | Scrape target for Prometheus |
/api/v1/badge.svg?chart=system.cpu&value_color=green | Embeddable status badge |
Netdata Cloud (Optional)
# Connect (claim) a node to Netdata Cloud for multi-node dashboards
sudo netdata-claim.sh -token=YOUR_TOKEN -rooms=ROOM_ID -url=https://app.netdata.cloud
The agent keeps working fully standalone if you never claim it — Cloud only adds cross-node views and centralized alerting.
Common Workflows
# Quick health check from the shell
curl -s http://localhost:19999/api/v1/alarms | jq '.alarms | keys'
# Expose metrics to an existing Prometheus stack
curl -s 'http://localhost:19999/api/v1/allmetrics?format=prometheus' | head
# Lower CPU/disk footprint on a small VM (netdata.conf)
# [global] update every = 2
# [db] mode = ram # keep metrics in memory only
# Reduce retention but keep per-second granularity, then reload
sudo systemctl restart netdata
Netdata vs Prometheus + Grafana
| Aspect | Netdata | Prometheus + Grafana |
|---|
| Setup | Minutes, auto-detect | Manual exporters + dashboards |
| Granularity | Per-second by default | Typically 15s scrape |
| Storage | Local tiered db (dbengine) | Central TSDB |
| Best for | Single-node depth, fast triage | Large fleets, long-term querying |
| Interop | Exports Prometheus format | Can scrape Netdata |
Resources