Why Beszel Outshines Netdata and Zabbix on My Servers
After managing a cluster of 20 VPS nodes for over 6 months, I realized something important. Sometimes, we don’t need a massive system like Zabbix or complex Grafana dashboards. If you just need to know which server is hanging, running out of RAM, or experiencing unusual network activity, Beszel is the answer.
Previously, I used Netdata, but it consumed up to 100MB of RAM on cheap 1GB VPS instances. Prometheus + Grafana took too much effort to configure. Beszel solves everything: a modern SaaS-like interface, written in Go for lightweight Linux server monitoring, and native multi-server support from the start.
Deploying Beszel in 5 Minutes
The system consists of two parts: Beszel Hub (the central dashboard) and Beszel Agent (installed on the servers you want to monitor). We will deploy it quickly using Docker Compose.
1. Installing Beszel Hub
Choose one server as the hub. Create a docker-compose.yml file with the following content:
services:
beszel:
image: 'henrygd/beszel:latest'
container_name: 'beszel-hub'
restart: unless-stopped
ports:
- '8090:8090'
volumes:
- ./beszel_data:/data
Run docker compose up -d. Then, access http://SERVER-IP:8090 to set up your initial admin account.
2. Connecting Agents to the System
In the Hub interface, click “Add System”. The system will provide you with a unique KEY. The Compose file for the Agent side will look like this:
services:
beszel-agent:
image: 'henrygd/beszel-agent:latest'
container_name: 'beszel-agent'
restart: unless-stopped
network_mode: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
PORT: 4567
KEY: 'ssh-ed25519 AAAAC3... (Your key)'
Simply run this Agent on every other server. They will automatically connect and push data to the Hub immediately.
Security and Storage Mechanism
Beszel doesn’t use cumbersome push/pull mechanisms. The Hub connects to the Agent via a secure SSH key-based protocol. Only the Hub holding the Private Key has the authority to retrieve data from the Agent. This helps the system avoid common port-scanning attacks.
Lightning-Fast Docker Troubleshooting
My favorite feature is monitoring Docker Stats without any extra configuration. By mounting docker.sock, you can clearly see how many resources each container is consuming. This is a lifesaver when a web app has a memory leak and you don’t know which container is causing it.
Ultra-Compact SQLite Data
All metrics are stored in SQLite right at the Hub. With 20 nodes monitored continuously, my database is only about 300MB after six months. The system automatically aggregates old data (rollup), so the storage footprint grows extremely slowly.
Advanced Alerting and Security Configuration
Setting Up Alerts via Telegram
Beszel supports sending alerts via Telegram, Discord, or Slack thanks to its Apprise integration. To avoid constant noise, you should set smart thresholds and reduce alert noise in production systems. For example: Only alert if CPU exceeds 90% for 5 consecutive minutes.
Security with Reverse Proxy
Don’t expose port 8090 directly. Use Nginx Proxy Manager or Traefik to wrap it in HTTPS. Beszel also supports OIDC, allowing you to log in with Google Auth or Authentik for enhanced dashboard security.
Real-World Experience After 6 Months of Operation
Here are a few tips to better optimize your system, especially if you also monitor directory sizes to prevent disk issues:
- Prevent Alert Fatigue: Don’t leave the Disk Usage alert at the default 80%. Servers with heavy logging will cause your Telegram to ping constantly. Raise the threshold to 90-95%.
- Optimize Weak VPS: The Agent only uses 15MB of RAM. However, for a 512MB VPS, you should increase
UPDATE_INTERVALto 30 seconds to reduce disk I/O load. - Data Backup: Regularly backup the
beszel_datadirectory. This is where all your monitoring history and the list of nodes you’ve carefully configured are stored.
Compared to the bulkiness of Zabbix, Beszel provides a lean and efficient experience. It focuses on the metrics that actually matter for DevOps and SRE professionals who need to build reliable alerts for production. If you’re managing a homelab or a few personal VPS instances, give Beszel a try. You’ll soon forget those boring black-and-white htop commands.

