← All articles
MONITORING Beszel: Lightweight Server Monitoring with a Beautif... 2026-02-09 · beszel · monitoring · server

Beszel: Lightweight Server Monitoring with a Beautiful Dashboard

Monitoring 2026-02-09 beszel monitoring server dashboard

Beszel is a lightweight server monitoring tool that tracks CPU, memory, disk, network, and temperature across multiple servers with a clean, modern dashboard. It's built as a simpler alternative to Grafana+Prometheus — no time-series database configuration, no query languages, no dashboard building. Install the hub, deploy agents, and you immediately see your servers' health.

Why Beszel?

The server monitoring space ranges from minimal (just run htop) to complex (Grafana + Prometheus + node_exporter + alertmanager). Beszel occupies the sweet spot:

The trade-off compared to Grafana: less customizable, shorter data retention, no custom dashboards. But for most self-hosters who just want to know "are my servers healthy?", Beszel gives you 90% of the value with 10% of the setup effort.

Architecture

Beszel has two components:

  1. Hub — The central dashboard. Runs on one server, stores data, serves the web UI
  2. Agent — A lightweight collector that runs on each monitored server and reports to the hub

Communication between agents and the hub uses SSH — no special firewall rules needed beyond SSH access.

Installation

Hub (Central Dashboard)

# docker-compose.yml
services:
  beszel:
    image: henrygd/beszel:latest
    container_name: beszel
    ports:
      - "8090:8090"
    volumes:
      - beszel_data:/beszel_data
    restart: unless-stopped

volumes:
  beszel_data:
docker compose up -d

Access the dashboard at http://your-server:8090 and create an admin account.

Agent (On Each Monitored Server)

The agent is a single binary. On each server you want to monitor:

Docker method:

services:
  beszel-agent:
    image: henrygd/beszel-agent:latest
    container_name: beszel-agent
    network_mode: host
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      - KEY=your-public-key-from-hub
      - PORT=45876
    restart: unless-stopped

Binary method (no Docker):

curl -sL https://get.beszel.dev | bash

The agent is a single ~10 MB binary with no dependencies.

Connecting Agents to the Hub

  1. In the hub UI, click "Add Server"
  2. Enter the server's hostname/IP and the agent port (default 45876)
  3. Copy the public key shown and add it to the agent's KEY environment variable
  4. The hub connects to the agent via SSH and starts collecting data

What It Monitors

System Metrics

Docker Containers

When the Docker socket is mounted, the agent also reports:

This is genuinely useful — you can see which container is eating your resources without SSH-ing in and running docker stats.

Dashboard Features

Overview Page

Shows all connected servers with:

Server Detail Page

Drill into any server to see:

Alerts

Configure alerts in the hub UI:

Alert channels:

Beszel vs Netdata vs Grafana+Prometheus

Feature Beszel Netdata Grafana+Prometheus
Setup time 5 minutes 10 minutes 30-60 minutes
Agent footprint ~10 MB RAM ~200 MB RAM ~50 MB RAM
Hub footprint ~50 MB RAM Agent-based (no hub) ~500 MB+ RAM
Pre-built dashboards Yes Yes (extensive) No (build your own)
Custom dashboards No Limited Unlimited
Data retention Weeks/months Hours/days Configurable (years)
Query language None None PromQL
Docker monitoring Basic (CPU/mem) Detailed Detailed (with cAdvisor)
Learning curve Very low Low High
Customization Limited Moderate Unlimited

Choose Beszel When

Choose Netdata When

Choose Grafana+Prometheus When

Tips

Monitoring Remote VPS Servers

If your hub and agent are on different networks, the SSH connection needs port 45876 accessible on the agent. Either:

Reducing Data Storage

Beszel's SQLite database grows with data retention. If disk space is a concern:

Using with Uptime Kuma

Beszel monitors server resources. Uptime Kuma monitors service availability. They complement each other:

Verdict

Beszel is the monitoring tool most self-hosters actually need. Not the monitoring tool they think they need (Grafana with 47 panels) — the one that takes five minutes to set up and immediately tells you if something is wrong.

The agent-hub architecture scales to a reasonable number of servers, the dashboard looks great without customization, and the Docker container monitoring answers the perennial question of "what's using all my RAM?" If you find yourself wanting more customization or longer retention later, you can always migrate to Grafana. But for most homelabs, Beszel is exactly enough.