Prerequisites
- Linux VPS (Debian, Ubuntu, CentOS, Fedora, etc.)
- Root or sudo access
- 256 MB free RAM (very lightweight)
Step 1: One-command install
Netdata provides an official kickstart that detects the distribution:
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh
sudo sh /tmp/netdata-kickstart.sh
During install, the script asks if you want to enable anonymous telemetry and connect to Netdata Cloud. You can refuse and use only the local dashboard.
Step 2: Access the dashboard
Netdata exposes its interface on port 19999:
http://YOUR_VPS_IP:19999
You immediately see all real-time metrics: CPU per core, RAM, swap, disk, network, top processes.
Step 3: Secure dashboard access
Port 19999 is publicly open by default, which isn't ideal. Two approaches.
Option A: Restrict by IP with UFW
sudo ufw deny 19999/tcp
sudo ufw allow from YOUR_FIXED_IP to any port 19999
Option B: Nginx reverse proxy with authentication
Install apache2-utils to create a password:
sudo apt install -y apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd-netdata admin
Configure Nginx:
sudo nano /etc/nginx/sites-available/netdata
Content:
server {
listen 80;
server_name netdata.your-domain.com;
auth_basic "Netdata Monitoring";
auth_basic_user_file /etc/nginx/.htpasswd-netdata;
location / {
proxy_pass http://127.0.0.1:19999;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Enable and add SSL:
sudo ln -s /etc/nginx/sites-available/netdata /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d netdata.your-domain.com
Block public port 19999:
sudo ufw deny 19999/tcp
Step 4: Configure alerts
Netdata includes 200+ default alerts (CPU > 90%, full disk, zombie processes, etc.). To receive alerts by email, Discord or Slack, edit:
sudo nano /etc/netdata/health_alarm_notify.conf
Discord alerts (recommended)
SEND_DISCORD="YES"
DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/XXX/YYY"
DEFAULT_RECIPIENT_DISCORD="alerts"
Email alerts
SEND_EMAIL="YES"
DEFAULT_RECIPIENT_EMAIL="[email protected]"
Reload:
sudo systemctl restart netdata
Test sending:
sudo -u netdata /usr/libexec/netdata/plugins.d/alarm-notify.sh test
Step 5: Auto-detected modules
Netdata auto-detects and monitors:
- Nginx / Apache: connections, requests/sec, HTTP codes
- MySQL / MariaDB / PostgreSQL: queries, connections, slow queries
- Redis / Memcached: hit/miss ratio, memory
- Docker: containers, CPU, RAM per container
- PHP-FPM: pools, active requests
- systemd: failed services
- fail2ban: real-time banned IPs
List active modules:
sudo systemctl status netdata
ls /etc/netdata/python.d/
Step 6: Reduce retention to save disk
By default, Netdata keeps 1 hour of data in memory and 1 day on disk. To increase:
sudo nano /etc/netdata/netdata.conf
Modify:
[db]
mode = dbengine
storage tiers = 3
# Tier 0 (high resolution, 1s)
dbengine multihost disk space MB = 256
# Tier 1 (1m)
dbengine tier 1 multihost disk space MB = 128
# Tier 2 (1h, long term)
dbengine tier 2 multihost disk space MB = 64
Restart:
sudo systemctl restart netdata
Troubleshooting
Dashboard doesn't load
Check the service:
sudo systemctl status netdata
sudo journalctl -u netdata -n 50 --no-pager
High CPU caused by Netdata
Netdata normally uses less than 5% CPU. If more:
sudo nano /etc/netdata/netdata.conf
Increase collection interval:
[global]
update every = 5
MySQL module not detected
Create a dedicated MySQL monitoring user:
CREATE USER 'netdata'@'localhost' IDENTIFIED BY '';
GRANT USAGE, REPLICATION CLIENT, PROCESS ON *.* TO 'netdata'@'localhost';
FLUSH PRIVILEGES;
Useful commands
# Status
sudo systemctl status netdata
# Logs
sudo journalctl -u netdata -f
# List active alerts
curl -s http://localhost:19999/api/v1/alarms | jq
# Uninstall Netdata
sudo /usr/libexec/netdata/netdata-uninstaller.sh --yes
Conclusion
Netdata is the simplest and most complete solution to monitor a Linux VPS. Going further, combine it with:
- Uptime Kuma for external supervision (upcoming VeryCloud guide)
- Netdata Cloud (free) to aggregate multiple VPS in a single dashboard
- Prometheus / Grafana if you need long-term storage and custom dashboards
Resources
- Official site: https://www.netdata.cloud
- Documentation: https://learn.netdata.cloud
- GitHub: https://github.com/netdata/netdata

















