Description
Beszel est un hub de monitoring serveur moderne, écrit en Go (binaire unique, très léger), avec une UI web épurée. C'est une alternative récente et rafraîchissante à [[app-netdata]] et [[app-glances]] pour ceux qui veulent moins de bruit visuel et plus de simplicité.
Architecture client/serveur :
- Hub (le serveur central) : agrège les données de tous les agents
- Agent (à installer sur chaque machine à surveiller) : envoie les métriques au hub
Fonctionnalités principales :
- ✅ Métriques système : CPU, RAM, swap, disque, réseau
- ✅ Containers Docker : CPU/RAM/IO par container
- ✅ Historique : graphiques temporels, rétention configurable
- ✅ Multi-utilisateurs : auth intégrée (PocketBase)
- ✅ Notifications : email, webhooks (Discord, Slack, Ntfy, etc.)
- ✅ Public sharing : partager des graphs publiquement
- ✅ Alertes sur seuils (CPU > 90%, RAM > 80%, disk > 90%, etc.)
- ✅ Backup/restore intégré
- ✅ API pour intégrations
- ✅ Léger : ~30 Mo de RAM pour le hub, agent ~10 Mo
Public cible : homelabers, petites équipes, dev solo. Idéal pour 1-50 serveurs. Pour de l'hyperscale, passer à [[app-prometheus]] + [[app-grafana]].
Comparaison : Beszel se distingue de [[app-netdata]] (UI très dense, panneaux partout) en proposant une UI zen et focalisée. Il est plus moderne que [[app-glances]] (qui existe depuis 10 ans) avec une vraie UI web responsive au lieu d'une CLI + petit UI. Par contre, il est moins riche en métriques (pas de sensors, GPU, SMART, etc.) que Netdata.
Installation
Option 1 : Docker Compose (hub + agent sur même machine)
# docker-compose.yml
version: '3.8'
services:
beszel-hub:
image: henrygd/beszel:latest
container_name: beszel-hub
restart: unless-stopped
ports:
- "8090:8090" # Web UI
volumes:
- beszel-data:/beszel_data
labels:
- "traefik.enable=true"
- "traefik.http.routers.beszel.rule=Host(`beszel.example.com`)"
- "traefik.http.routers.beszel.entrypoints=websecure"
- "traefik.http.routers.beszel.tls.certresolver=letsencrypt"
beszel-agent:
image: henrygd/beszel-agent:latest
container_name: beszel-agent
restart: unless-stopped
environment:
PORT: 45876
KEY: "votre-cle-publique-ici" # Générée dans le hub
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
depends_on:
- beszel-hub
volumes:
beszel-data:
Option 2 : Binaire natif (agent, sur chaque serveur à monitorer)
# Linux/macOS curl -sL https://raw.githubusercontent.com/henrygd/beszel/main/supplemental/scripts/install-agent.sh -o install-agent.sh chmod +x install-agent.sh ./install-agent.sh
Option 3 : Docker agent (sur d'autres machines)
services:
beszel-agent-remote:
image: henrygd/beszel-agent:latest
restart: unless-stopped
network_mode: host
environment:
PORT: 45876
KEY: "votre-cle-publique"
HUB_URL: http://hub.example.com:8090
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
Configuration
- Accéder au hub :
http://IP:8090 - Créer le compte admin au premier lancement
- Ajouter un système : copier la clé publique générée par le hub
- Installer l'agent sur la machine cible avec cette clé
- Vérifier la connexion : l'agent apparaît dans le hub en quelques secondes
- Configurer les alertes : Settings > Notifications + Alert Rules
Alternatives
Open Source
- [[app-netdata]] — Plus dense en métriques, UI chargée
- [[app-glances]] — CLI first, web minimaliste
- [[app-uptime-kuma]] — Monitoring d'uptime (pas système)
- Prometheus + node_exporter + Grafana — Stack pro, plus complexe
- Scrutiny — Pour les disques SMART uniquement
Comparaison Beszel vs alternatives
| Critère | Beszel | Netdata | Glances | Prometheus+Node |
|---|---|---|---|---|
| Self-hosted | ✅ | ✅ | ✅ | ✅ |
| UI web moderne | ✅ | ✅ (dense) | Basique | ❌ (Grafana requis) |
| RAM consommée | ~30 Mo | ~200 Mo | ~30 Mo | ~500 Mo+ |
| Containers Docker | ✅ | ✅ | ✅ | ✅ |
| Alertes | ✅ | ✅ | ✅ | ✅ |
| Setup | 5 min | 10 min | 5 min | 1 h |
| Métriques profondes | Basique | Très riche | Moyen | Illimité |
Verdict : Beszel est le meilleur choix pour homelab/petite équipe. Pour plus de 20 serveurs ou des besoins avancés, passer à Prometheus + Grafana.
Propriétaires (ce que Beszel remplace)
- Datadog Infrastructure (à partir de $15/host/mois)
- New Relic Infrastructure (payant)
- Pingdom Server Monitor (payant)
- Nagios XI (payant, très cher)
Sécurité
- Auth intégrée : email/password (PocketBase, hashé bcrypt)
- HTTPS via [[app-traefik]] recommandé
- Clé publique agent → hub : utiliser des clés fortes, rotation possible
- Pas d'exposition de l'agent : l'agent initie la connexion (outbound), pas besoin d'ouvrir de port entrant
