
Know when your VPS has a problem before your users report it — that's the goal of good server monitoring. This guide introduces two industry-standard open source tools: Netdata for real-time server metrics, and Uptime Kuma for uptime monitoring with Telegram alerts. Both are free, self-hosted, and work together as a comprehensive monitoring stack.
Netdata vs Uptime Kuma: What Does Each Do?
These tools complement each other — use both:
Netdata
- Real-time CPU, RAM, Disk, Network
- Beautiful, easy-to-read dashboard
- Detect performance issues
- Alert when resources spike
- Monitor processes, databases, Nginx
Uptime Kuma
- Monitor URLs, TCP, HTTP(S)
- Instant alert when site goes down
- Public status page
- Telegram, Email, Slack support
- Ping, DNS, certificate expiry
Install Netdata on Ubuntu/Debian
After installation, access the dashboard at http://your-server-ip:19999
Secure Port 19999 with Nginx Reverse Proxy
Never expose port 19999 directly. Use Nginx as a reverse proxy with basic authentication:
Configure Netdata Alerts
Netdata ships with over 200 built-in alert rules, customizable in /etc/netdata/health.d/. Example CPU alert:
Install Uptime Kuma with Docker
Access the dashboard at http://your-server-ip:3001 and create your admin account.
Install Without Docker (npm)
Add Monitors in Uptime Kuma
Click Add New Monitor and configure:
- Monitor Type: HTTP(s) for websites, TCP for ports, Ping for servers
- URL/IP: The endpoint to monitor
- Heartbeat Interval: 60 seconds (recommended)
- Retries: 3 attempts before marking as down
Comparing Popular Monitoring Stacks
Before choosing a monitoring tool, compare the options available in the market to find the best fit for your project size and budget.
| Tool | Type | Difficulty | RAM Usage | Best For |
|---|---|---|---|---|
| Netdata | Real-time metrics | Easy | 50–100 MB | General VPS |
| Uptime Kuma | Uptime monitoring | Easy | 80–120 MB | All sizes |
| Prometheus + Grafana | Metrics + Dashboard | Hard | 300–500 MB | Large teams |
| Zabbix | Enterprise monitoring | Very hard | 500 MB+ | Enterprise |
| Datadog | Cloud-based SaaS | Medium | Agent ~50 MB | Funded teams |
Connect Netdata to Netdata Cloud (Optional)
Netdata offers a free Cloud tier that aggregates dashboards from multiple servers into a single view, with built-in alert management and ML-powered anomaly detection — especially useful when managing multiple VPS instances.
Claim Your Node to Netdata Cloud
After installing Netdata, run the following command to connect to your Cloud account:
netdata-claim.sh -token=YOUR_CLAIM_TOKEN \
-rooms=YOUR_ROOM_ID \
-url=https://app.netdata.cloud
Find your Token and Room ID in the app.netdata.cloud dashboard after signing up for free. Your node will appear in the Cloud dashboard within 1–2 minutes.
Benefits of Netdata Cloud
- View metrics from multiple VPS instances on a single dashboard
- Receive email alerts directly from the Cloud (no SMTP setup needed)
- Anomaly Detection — automatically detects unusual behavior using machine learning
- Metric Correlation — identifies relationships between metrics during incidents
- Free plan supports unlimited servers with 14-day historical data retention
Set Up Telegram Notifications
- Open Telegram and search for @BotFather
- Type /newbot and follow the prompts to create your bot
- Copy the API Token provided
- Find your Chat ID using
@userinfobot - In Uptime Kuma: Settings → Notifications → Add → Telegram
- Enter your Bot Token and Chat ID
Create a Public Status Page with Uptime Kuma
Uptime Kuma includes a built-in public Status Page feature that lets your customers check system status on their own — reducing repetitive support inquiries and demonstrating operational transparency.
How to Create a Status Page
- In Uptime Kuma, click Status Page in the left menu
- Click New Status Page, set a name and slug such as
status - Select the monitors you want to display on the page
- Configure a Custom Domain such as
status.yourdomain.comby pointing a DNS CNAME to your VPS - Publish the Status Page and share the URL with your users
Nginx Proxy for Status Page
Add a CNAME record in your domain DNS, then configure Nginx to proxy traffic to Uptime Kuma on port 3001:
server {
listen 80;
server_name status.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Production VPS Monitoring Checklist
Before deploying any application on a production VPS, have a complete monitoring setup in place. This checklist covers the essential items every production server should have:
- Infrastructure Monitoring: Install Netdata or an equivalent tool to observe CPU, RAM, Disk, and Network in real time
- Uptime Monitoring: Configure Uptime Kuma to ping your primary URL every 60 seconds with instant alerts when down
- Disk Alert: Set an alert when disk usage exceeds 80%, as a full disk crashes all services simultaneously
- SSL Expiry Alert: Configure Uptime Kuma to warn you at least 30 days before an SSL Certificate expires
- Backup Verification: Run a script that sends a notification when daily backup succeeds or fails
- Log Monitoring: Alert when error rates spike in application logs or Nginx error logs
- Database Monitoring: Regularly review MySQL or PostgreSQL slow query logs and connection counts
- Public Status Page: Create a public Status Page for customer-facing transparency
A complete monitoring setup enables your team to detect problems before customers notice them, significantly reducing Mean Time to Recovery. For VPS environments running 24 hours a day, fast response time is one of the key differentiators between professional operations and amateur deployments.
Simple CPU/RAM Alert via Bash Script
AsiaGB VPS starts at 500 THB/month. Run both Netdata and Uptime Kuma simultaneously with Full Root Access, SSD storage, and Docker support. Locations: Thailand (CSL) and Singapore (OVHcloud). 99% Uptime.
VPS Ready for Server Monitoring
VPS from 500 THB/month. Full Root Access, Docker, SSD. Thailand & Singapore locations, 99% Uptime.
View VPS Plans