Beszel: A Sub‑10 MB Open‑Source Monitoring Panel That Can Replace Prometheus
Beszel is a lightweight, open‑source server‑monitoring dashboard written in Go that runs a Hub‑Agent architecture, offers per‑machine history charts, Docker container stats, alerting, multi‑user access and backup, and can be deployed in about ten minutes with Docker Compose, making it ideal for small‑scale environments where Prometheus feels heavyweight.
When monitoring a handful of servers, the usual Prometheus‑Grafana stack can feel heavy because each exporter must be installed, dashboards configured, and PromQL queries written. The author sought a lighter alternative that installs quickly, consumes minimal resources, retains historical data, and supports alerts.
What Beszel Is
Beszel is an open‑source monitoring panel (MIT‑licensed) composed of two parts: a Hub (web UI) and an Agent (data collector). The Hub runs on a single machine and stores all metrics locally; the Agent, written in Go, runs on each monitored host with negligible overhead.
All data stays on the Hub, so there is no third‑party server, and the Hub provides a built‑in admin UI for user management, backups, and settings.
Key Features
All machines on one screen : The homepage lists every host in a table showing CPU, memory, disk, network, and online status. Rows can be sorted to surface the highest‑resource users.
Per‑machine historical charts : Clicking a host opens a detail page with time‑series graphs for CPU, memory, disk I/O, bandwidth, load, temperature, fan speed, and, if present, GPU usage, memory and power. The time range spans from one hour to thirty days.
Docker container statistics : For Docker‑based services, Beszel records each container’s CPU, memory, and network usage as separate curves, making it easy to spot a container that suddenly consumes resources.
Alerting and notifications : Users can set thresholds on metrics such as CPU, memory, disk, bandwidth, temperature, fan speed, load, and online status. When a threshold is crossed, Beszel can send email or webhook notifications (compatible with enterprise‑WeChat, DingTalk, etc.). A test button verifies the webhook before saving.
Multi‑user and third‑party login : Multiple accounts can be created, each with its own set of machines. Administrators can share specific hosts. Authentication supports password, OAuth, and OIDC providers like GitHub and Google.
Automatic backups : The Hub can schedule backups to local disk or S3‑compatible object storage, and restore from those snapshots when needed.
Quick Installation (≈10 minutes)
The author used the official Docker Compose method. After creating a directory on the Hub machine, the following docker-compose.yml was placed there:
services:
beszel:
image: henrygd/beszel:latest
container_name: beszel
restart: unless-stopped
environment:
APP_URL: http://localhost:8090
ports:
- 8090:8090
volumes:
- ./beszel_data:/beszel_dataAfter adjusting APP_URL to the desired address, the command docker compose up -d started the service. Opening http://localhost:8090 prompted the creation of an admin account, after which the user can add monitored systems. The UI generates a compose file (including a public key and token) for the Agent, which can be copied to the target host and launched, instantly showing the host as online.
The Agent can also be installed via a binary script generated by the UI, which registers the host as a system service without Docker.
Who Should Use Beszel
It fits users who have a few VPS, a home NAS, or small‑scale servers and want a unified view. It also serves self‑hosted Docker users who need per‑container resource visibility, small teams that need separate accounts, and anyone who requires long‑term historical data for occasional incident investigations.
For large‑scale deployments (hundreds of machines), complex custom collectors, or advanced visual dashboards, Prometheus + Grafana remains more appropriate.
Personal Impressions
The author finds Beszel’s feature set sufficient for daily monitoring—historical charts, container stats, alerts, multi‑user support, and backups—while staying simple and unobtrusive. The Agent runs silently, and the UI is clean. It does not attempt automation or log analysis; it merely records state and notifies when thresholds are breached. After installing Beszel, the author rarely SSHes into each machine individually.
Open‑Source Repository
https://github.com/henrygd/beszel
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
