Netdata is a monitoring agent that auto-detects what’s running on a server and shows hundreds of metrics — CPU, memory, disks, network, Nginx, MySQL, Docker containers — in a live dashboard at one-second resolution. It ships with sensible alerts out of the box. If you want visibility right now without building a monitoring stack, Netdata is the fastest route.
1. Install
The official kickstart script installs the agent from Netdata’s repositories (or static builds) and sets up automatic updates:
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
less /tmp/netdata-kickstart.sh # review it
sh /tmp/netdata-kickstart.sh --stable-channel --disable-telemetry
Many distributions also package it (sudo apt install netdata), usually as an older version.
Check that it runs:
systemctl status netdata --no-pager
curl -s http://localhost:19999/api/v1/info | head
2. Secure the dashboard
Netdata’s dashboard listens on port 19999. Don’t expose it publicly — it reveals detailed information about your server. Options:
Bind it to localhost in /etc/netdata/netdata.conf:
[web]
bind to = 127.0.0.1
Restart (sudo systemctl restart netdata) and open it through an SSH tunnel:
ssh -L 19999:127.0.0.1:19999 user@your-server
Then browse to http://localhost:19999.
Or put it behind Nginx with authentication:
location /netdata/ {
auth_basic "Monitoring";
auth_basic_user_file /etc/nginx/.htpasswd-netdata;
proxy_pass http://127.0.0.1:19999/;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Connection "keep-alive";
}
Or restrict by firewall to your IP or VPN subnet only.
(The netdata.conf file may not exist until you create it; sudo /etc/netdata/edit-config netdata.conf opens it with defaults.)
3. What you get automatically
Netdata detects and charts, with no configuration:
- System: CPU per core (including steal and iowait), load, memory, swap, disks I/O and latency, filesystems, network interfaces, TCP states.
- Processes grouped by application (
apps.plugin): see which program uses CPU, memory and disk. - systemd services, Docker containers and cgroups.
- Many services when they expose status endpoints: Nginx, Apache, MySQL/MariaDB, PostgreSQL, Redis, PHP-FPM, and more.
Some collectors need a status endpoint enabled — for example Nginx’s stub_status:
server {
listen 127.0.0.1:80;
server_name localhost;
location /nginx_status { stub_status; allow 127.0.0.1; deny all; }
}
and a MySQL user for monitoring:
CREATE USER 'netdata'@'localhost';
GRANT USAGE, REPLICATION CLIENT, PROCESS ON *.* TO 'netdata'@'localhost';
Restart Netdata after enabling them.
4. Alerts
Netdata ships with hundreds of preconfigured health alarms: disk space running out, high memory pressure, disk errors, packet drops, OOM kills, service-specific issues. See active alerts in the dashboard’s alarm panel.
To receive notifications, configure health_alarm_notify.conf:
sudo /etc/netdata/edit-config health_alarm_notify.conf
Set up email (needs a working local mail setup), or Telegram, Slack, Discord, ntfy and many others by filling in their tokens. Test with:
sudo -u netdata /usr/libexec/netdata/plugins.d/alarm-notify.sh test
(The path may be /usr/lib/netdata/… on some installs.)
5. Resource usage and retention
Netdata is efficient, but on a 1–2 GB VPS keep an eye on it:
- It typically uses a few percent of one core and 100–200 MB RAM, depending on the number of metrics.
- Metrics are stored in its database engine (
dbengine) with tiers: per-second data for recent history, aggregated data for longer periods. Disk space for retention is configurable innetdata.confunder[db]. - Disable collectors you don’t need to save resources.
6. Netdata Cloud (optional)
You can connect agents to Netdata Cloud to see many servers in one place, with role-based access and centralized alert notifications. It’s optional — the local agent works fully on its own. Metrics stay on your server; the cloud queries agents on demand.
Netdata vs Prometheus + Grafana
| Netdata | Prometheus + Grafana | |
|---|---|---|
| Setup | Minutes, auto-detection | More work; flexible |
| Resolution | 1 second | Typically 15–60 seconds |
| Alerts | Hundreds preconfigured | Write your own rules |
| Long-term, multi-server analysis | Good with Cloud/parents | Excellent |
| Custom dashboards | Limited | Extensive |
Many people use both: Netdata for live troubleshooting, Prometheus for long-term trends. Add an external check like Uptime Kuma to catch outages from the outside.
Related: CPU and RAM monitoring and top for quick checks without an agent.