How to Set Up VPS Monitoring with Netdata: CPU, RAM, Disk, and Network in Real-Time
Real-time monitoring is essential for maintaining VPS performance and catching issues before they affect your users. Netdata is an open-source, real-time monitoring solution that provides granular visibility into every aspect of your server — CPU usage, memory consumption, disk I/O, network traffic, and hundreds of other metrics — all through a beautiful web dashboard. This tutorial walks through installing and configuring Netdata on a Linux VPS.
Prerequisites
- A Linux VPS (Ubuntu 20.04/22.04/24.04 or Debian 11/12 recommended)
- Root or sudo access
- At least 512 MB RAM (1 GB+ recommended for production servers)
- A firewall that allows port 19999 (or configure a reverse proxy)
If you don’t already have a VPS, compare VPS providers on our comparison page to find one that fits your monitoring needs.
Step 1: Install Netdata
The easiest way to install Netdata is using the automated one-line installer, which detects your operating system and handles all dependencies:
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
This script will:
- Detect your OS and package manager
- Install all required dependencies
- Download the latest Netdata release
- Compile and install Netdata
- Start the Netdata service and enable it on boot
The installation typically takes 1-3 minutes. Once complete, Netdata is already collecting metrics and serving the dashboard.
Alternative: Install via Package Manager
On Ubuntu/Debian, you can also install Netdata directly from the official repository:
# Add the Netdata repository
curl -Ss https://packagecloud.io/netdata/netdata/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/netdata-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/netdata-keyring.gpg] https://packagecloud.io/netdata/netdata/ubuntu/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/netdata.list
# Install Netdata
sudo apt update
sudo apt install netdata -y
Step 2: Verify Netdata is Running
After installation, verify that the Netdata service is active:
sudo systemctl status netdata
You should see output indicating the service is active (running). Netdata binds to localhost:19999 by default. Test that the dashboard is accessible locally:
curl -s http://127.0.0.1:19999/api/v1/info | head -50
Step 3: Configure Firewall Access
To access the Netdata dashboard from your browser, you need to expose port 19999 through your firewall. For security, restrict access to your IP address only:
# UFW (Ubuntu)
sudo ufw allow from YOUR_IP_ADDRESS to any port 19999 proto tcp
# Firewalld (CentOS/RHEL/Fedora)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="YOUR_IP_ADDRESS" port port="19999" protocol="tcp" accept'
sudo firewall-cmd --reload
Better approach: Use an Nginx reverse proxy with SSL for secure access. This also lets you use a subdomain like monitor.yourdomain.com instead of remembering the port number.
Step 4: Exploring the Netdata Dashboard
Open http://YOUR_VPS_IP:19999 in your browser. The dashboard greets you with a comprehensive overview of your system:
- CPU Section — Real-time per-core utilization, temperature, frequency scaling, interrupts, and context switches. Watch for sustained usage above 80% as an indicator you may need to upgrade your VPS plan.
- RAM Section — Total, used, cached, and available memory. The “Available RAM” metric is the most useful — it accounts for reclaimable cache.
- Disk Section — I/O operations per second (IOPS), throughput (read/write MB/s), utilization percentage, and latency. High disk latency (>20ms) often indicates storage contention.
- Network Section — Bandwidth usage (inbound/outbound), packet rates, errors, drops, and retransmits. TCP retransmits above 0.1% suggest network issues.
Step 5: Setting Up Alerts and Notifications
Netdata comes with 200+ pre-configured alerts. To receive notifications via email, Slack, Discord, Telegram, or PagerDuty, edit the health notification configuration:
sudo nano /etc/netdata/health_alarm_notify.conf
Uncomment and configure your preferred notification channel. For example, for Slack:
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
DEFAULT_RECIPIENT_SLACK="#alerts"
Then restart Netdata:
sudo systemctl restart netdata
Step 6: Enable Long-Term Metrics Storage
By default, Netdata stores about 2 hours of metrics in memory. For historical analysis, configure the database engine to store weeks or months of data:
sudo nano /etc/netdata/netdata.conf
In the [db] section, adjust these settings:
[db]
mode = dbengine
dbengine page cache size MB = 32
dbengine disk space MB = 1024
This allocates 1 GB of disk space for metrics storage, which typically provides 2-4 weeks of historical data depending on the number of charts. Restart Netdata to apply the changes:
sudo systemctl restart netdata
Step 7: Setting Up Netdata Cloud (Optional)
For monitoring multiple VPS instances from a single dashboard, register your nodes with Netdata Cloud:
sudo netdata-claim.sh -token=YOUR_CLOUD_TOKEN -rooms=YOUR_ROOM_ID -url=https://app.netdata.cloud
You can obtain the token and room ID from your Netdata Cloud account. This enables centralized monitoring across all your VPS instances with role-based access control.
Key Metrics to Watch
| Metric | Warning Threshold | Critical Threshold | What to Do |
|---|---|---|---|
| CPU Usage | >80% sustained | >95% sustained | Upgrade vCPU allocation or optimize processes |
| RAM Usage | >85% | >95% | Add swap or increase RAM allocation |
| Disk I/O Latency | >10ms | >20ms | Check for disk contention, upgrade to NVMe |
| Disk Usage | >80% full | >90% full | Clean up logs, resize disk, or offload data |
| Network Errors | >0.1% packet loss | >0.5% packet loss | Check network interface, contact provider |
| TCP Retransmits | >0.1% of packets | >0.5% of packets | Investigate network congestion or hardware issues |
Conclusion
Netdata transforms your VPS from a black box into a fully transparent system where every metric is visible in real-time. With the installation and configuration steps in this guide, you now have a professional-grade monitoring setup that alerts you to anomalies before they become outages. For more performance optimization tips and to see our VPS performance benchmarks, check out our detailed provider comparisons.




Leave a Reply
You must be logged in to post a comment.