You can't fix what you can't see. Server monitoring is essential for catching problems before they become emergencies. Netdata is a free, open‑source monitoring tool that gives you a real‑time dashboard with hundreds of metrics.
This guide shows you how to install and configure Netdata on Ubuntu.
What is Netdata?
Netdata is a monitoring agent that runs on your VPS and collects system metrics in real time. It shows CPU usage, memory consumption, disk I/O, network traffic, and application‑specific metrics (Nginx, MySQL, Redis, etc.) in a beautiful web dashboard.
Unlike traditional monitoring tools that poll at intervals, Netdata streams data continuously. You see what's happening right now, not what happened 5 minutes ago.
Step 1: Install Netdata
The easiest way to install Netdata on Ubuntu 24.04 is using the official installation script:
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
This script detects your operating system and installs all dependencies automatically. It takes about 2‑3 minutes. The script will install Netdata and start the service.
Alternatively, you can install via APT:
sudo apt install netdata -y
After installation, Netdata will be available at http://your_server_ip:19999.
Step 2: Configure Netdata for Public Access
By default, Netdata only listens on localhost (127.0.0.1). To access it from your browser, you need to modify the configuration.
Edit the Netdata configuration file:
sudo nano /etc/netdata/netdata.conf
Find the [web] section and change the bind socket to 0.0.0.0:
[web]
bind socket to IP = 0.0.0.0
Restart Netdata:
sudo systemctl restart netdata
Important: Netdata doesn't have authentication by default. If you open it to the internet, your server metrics become public. For production, set up password protection or restrict access by IP.
Step 3: Add Password Protection with Nginx (Optional)
To add a basic username/password prompt, install a web server like Nginx as a proxy:
sudo apt install nginx apache2-utils -y
Create a password file:
sudo htpasswd -c /etc/nginx/.netdata-htpasswd admin
Create an Nginx site configuration:
sudo nano /etc/nginx/sites-available/netdata
Add this configuration:
server {
listen 80;
server_name netdata.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:19999;
proxy_set_header Host $host;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.netdata-htpasswd;
}
}
Enable the site and reload Nginx:
sudo ln -s /etc/nginx/sites-available/netdata /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Step 4: Explore the Dashboard
Open your browser and visit your Netdata URL. You'll see a dashboard with:
- CPU usage – Per‑core utilization, load average, and interrupt distribution
- Memory – RAM usage, swap, and memory pressure
- Disk I/O – Read/write speeds and IOPS
- Network – Incoming/outgoing traffic per interface
- Applications – If you run Nginx, MySQL, or Redis, Netdata automatically detects them and adds relevant metrics
Click on any chart to zoom in. The dashboard updates every second, giving you real‑time visibility.
Step 5: Set Up Alerts (Optional)
Netdata ships with dozens of pre‑configured alerts. When CPU usage exceeds 80%, or disk space drops below 10%, Netdata sends a warning to the dashboard.
To receive email alerts, install the mail utility and configure Netdata:
sudo apt install mailutils -y
Edit /etc/netdata/health_alarm_notify.conf and set:
SEND_EMAIL="YES"
DEFAULT_RECIPIENT_EMAIL="admin@example.com"
Restart Netdata:
sudo systemctl restart netdata
Troubleshooting
Netdata not showing data – Check if the service is running: sudo systemctl status netdata. If not, start it: sudo systemctl start netdata.
Port 19999 blocked – Ensure your firewall allows port 19999: sudo ufw allow 19999/tcp.
Next Steps
Netdata is now monitoring your VPS. Check the dashboard regularly – you'll spot patterns and catch issues early. Over time, you'll learn what normal looks like for your server, making it easier to detect anomalies.
Need a VPS to monitor? Check our recommended VPS providers.