Skip to content

Netdata - Real-Time Performance Monitoring Cheatsheet

Netdata - Real-Time Performance Monitoring Cheatsheet

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

MethodCommand
Universal kickstartwget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh
curl variantcurl https://get.netdata.cloud/kickstart.sh > /tmp/k.sh && sh /tmp/k.sh
Debian/Ubuntu pkgsudo apt install netdata
Fedora/RHEL pkgsudo dnf install netdata
Dockerdocker 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

CommandDescription
sudo systemctl start netdataStart the agent
sudo systemctl enable netdataStart on boot
sudo systemctl restart netdataRestart (apply config changes)
sudo systemctl status netdataCheck status
sudo journalctl -u netdata -fTail agent logs
netdatacli reload-healthReload alarms without a full restart
netdatacli reload-labelsReload host labels
netdatacli shutdown-agentStop 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 = 1Collection interval in seconds
[global] history / dbengineRetention / on-disk database tier sizes
[web] bind to = *Network interfaces the dashboard listens on
[web] default port = 19999Dashboard port
[plugins]Toggle whole plugin groups on/off

Collectors (Plugins)

TaskHow
List config files per collectorcd /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 collectorsudo /usr/libexec/netdata/plugins.d/go.d.plugin -d -m nginx
Common auto-detected modulesnginx, 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
CommandDescription
curl http://localhost:19999/api/v1/alarms?allList all alarms and current state (JSON)
curl http://localhost:19999/api/v1/infoAgent info, version, collectors
Edit health_alarm_notify.confWire up email, Slack, PagerDuty, Discord, etc.

Useful API Endpoints

EndpointReturns
/api/v1/chartsAll available charts on the node
/api/v1/data?chart=system.cpuTime-series data for a chart
/api/v1/allmetrics?format=prometheusScrape target for Prometheus
/api/v1/badge.svg?chart=system.cpu&value_color=greenEmbeddable 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

AspectNetdataPrometheus + Grafana
SetupMinutes, auto-detectManual exporters + dashboards
GranularityPer-second by defaultTypically 15s scrape
StorageLocal tiered db (dbengine)Central TSDB
Best forSingle-node depth, fast triageLarge fleets, long-term querying
InteropExports Prometheus formatCan scrape Netdata

Resources