Operations 9 min read

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.

Java Companion
Java Companion
Java Companion
Beszel: A Sub‑10 MB Open‑Source Monitoring Panel That Can Replace Prometheus

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_data

After 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
Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

monitoringoperationsalertingopen-sourceDocker ComposeBeszel
Java Companion
Written by

Java Companion

A highly professional Java public account

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.