Introduction
Beszel provides server monitoring that is simple to set up and light on resources. It collects CPU, memory, disk, network, and Docker container metrics from agents running on your servers and displays everything in a clean dashboard with historical charts and alerts.
What Beszel Does
- Monitors CPU, memory, disk I/O, network bandwidth, and temperature across multiple servers
- Tracks per-container Docker resource usage including CPU, memory, and network stats
- Stores historical data with configurable retention for trend analysis and capacity planning
- Sends alerts via email, webhook, or notification services when thresholds are exceeded
- Provides a responsive web dashboard with real-time and historical charts
Architecture Overview
Beszel uses a hub-and-agent architecture. The hub is a Go application built on PocketBase that stores data in SQLite and serves the web dashboard. Agents are tiny Go binaries that collect system metrics and report to the hub over SSH tunnels. Communication is encrypted end-to-end without requiring SSL certificates or VPN configuration.
Self-Hosting & Configuration
- Deploy the hub via Docker or a single binary on any Linux, macOS, or Windows system
- Install agents on monitored servers with a one-line script or Docker container
- Configure alert thresholds for CPU, memory, disk, and bandwidth per server
- Set data retention periods and chart resolutions through the dashboard settings
- Connect notification channels including email, Slack, Discord, Telegram, and generic webhooks
Key Features
- Extremely lightweight — agents use under 10 MB RAM and near-zero CPU
- SSH-based encrypted communication between hub and agents with no exposed ports needed
- Docker container monitoring with per-container CPU, memory, and network breakdown
- Automatic agent discovery and simple key-based pairing for adding new servers
- Multi-user support with role-based access and per-user server visibility
Comparison with Similar Tools
- Netdata — Real-time monitoring with thousands of metrics, but significantly heavier on resources
- Uptime Kuma — Focused on uptime and endpoint monitoring, not server resource metrics
- Grafana + Prometheus — Industry-standard stack with more flexibility, but complex to set up and maintain
- Glances — Single-server system monitor without multi-host dashboard or historical data
- Ward — Simple single-server dashboard, but no multi-host support or alerting
FAQ
Q: How much resources does a Beszel agent use? A: Agents typically consume less than 10 MB of RAM and negligible CPU, making them suitable even for low-power devices like Raspberry Pi.
Q: Do I need to open ports on monitored servers? A: The agent initiates an SSH tunnel to the hub, so no inbound ports need to be opened on the monitored servers. Only the hub needs to be reachable.
Q: Can I monitor servers without Docker? A: Yes. Beszel monitors system-level metrics on any Linux server. Docker monitoring is an additional feature that activates automatically when Docker is detected.
Q: How long is monitoring data retained? A: Data retention is configurable in the dashboard settings. By default, detailed data is kept for 30 days and downsampled data for longer periods.