Uptime Kuma surveille la disponibilité de mes services. Proxmox surveille les ressources de ses VMs. Mais pour avoir une vue unifiée des ressources système de tous mes serveurs : CPU, RAM, disque, réseau. J’utilise Beszel.
Beszel est l’outil de monitoring que j’ai adopté le plus rapidement. En moins d’une heure, j’avais des métriques en temps réel sur l’ensemble de mon cluster et sur tous les containers Docker. Simple, léger, et ça fait exactement ce qu’on lui demande.
C’est un outil minimaliste, installé en 5 minutes, qui me donne exactement ce que je veux sans la complexité de Grafana + Prometheus.

Beszel vs Grafana + Prometheus
Grafana + Prometheus est la stack de monitoring standard dans le monde des ops. C’est très puissant, très flexible, et ça demande plusieurs heures de configuration, des exporters sur chaque nœud, des dashboards à importer ou créer. Pour un homelab perso, c’est souvent trop.
Beszel fait une chose : afficher les métriques système de plusieurs serveurs dans une interface propre. Rien de plus, rien de moins. Installation en 5 minutes, zéro configuration YAML.
Architecture hub/agent
Beszel fonctionne sur un modèle hub/agent (un serveur central + des agents sur chaque machine à surveiller) :
- Hub : le serveur central, interface web, stockage des données. Un seul hub pour tous tes serveurs.
- Agent : un binary léger installé sur chaque serveur à monitorer. Envoie les métriques vers le hub.
Sur mon cluster : le hub tourne sur un nœud dédié (via Dockge), les agents sont installés sur chaque VM et LXC Proxmox, sur le NAS UNAS Pro, et sur les autres machines du réseau.
Installation du hub
services:
beszel:
image: henrygd/beszel:latest
container_name: beszel
restart: unless-stopped
ports:
- "8090:8090"
volumes:
- ./beszel_data:/beszel_data
Accès à http://<IP>:8090. Crée ton compte admin au premier démarrage.
Installation des agents
Dans l’interface hub : Add System. Beszel génère une commande d’installation pour l’agent :
curl -sL https://raw.githubusercontent.com/henrygd/beszel/main/supplemental/scripts/install-agent.sh \
-o /tmp/install-agent.sh && \
bash /tmp/install-agent.sh -p 45876 -k "SSH_PUBLIC_KEY"
Cette commande installe l’agent comme service systemd sur le serveur cible. L’agent démarre automatiquement et envoie les métriques vers le hub via SSH. Pas de port ouvert sur l’agent, c’est le hub qui se connecte à lui.
Ce que Beszel monitore
Ce qui m’a convaincu, c’est la couverture complète de l’infrastructure. Beszel ne voit pas seulement les hôtes physiques : chaque VM Proxmox, chaque container LXC, chaque service Docker remonte ses métriques individuellement. Sur mon dashboard, j’ai une ligne par machine : Adguard, Debian, Immich, DebianPrio, PVE1/2/3, PBS, Plex, PocketID, Nginx… chacun avec CPU, RAM, disque, réseau et charge moyenne en temps réel.
- CPU : utilisation globale + par cœur
- RAM : utilisation, swap, buffers
- Disques : espace utilisé, I/O read/write
- Réseau : débit entrant/sortant par interface
- Température : si les capteurs sont disponibles
- Containers Docker : métriques individuelles par container


Les graphiques et l’historique
Beszel stocke les données sur 1 mois par défaut. Les graphiques sont interactifs : tu peux zoomer sur une période précise pour corréler un pic de CPU avec un événement spécifique. Sur mon cluster, ça m’a permis d’identifier que le nœud Immich saturait sa RAM chaque nuit à 3h : c’était le job d’indexation qui tournait en background.

Alertes
Le système d’alertes de Beszel est granulaire : chaque seuil se configure par type de métrique, avec un déclenchement sur durée (pas juste un pic passager). Je reçois des notifications Telegram via webhook sur :
- Charge CPU : dépassement de seuil maintenu pendant X minutes. Ça évite les faux positifs sur les pics courts
- Utilisation mémoire : alerte si RAM proche de la saturation
- Espace disque : alerte dès 80% d’occupation, largement avant d’être dans le rouge
- Statut agent : notification immédiate si un système passe de « Joignable » à « Injoignable »
Beszel supporte aussi Slack, Discord, et d’autres canaux webhook si tu n’utilises pas Telegram.

Authentification via PocketID
Par défaut, Beszel propose un login par email/mot de passe. J’ai branché la mire de connexion sur PocketID (mon instance OIDC self-hosted tournant sous TinyAuth), ce qui me donne une authentification centralisée pour tous mes services homelab depuis un seul compte.
C’est rassurant niveau sécurité : Beszel hérite directement des politiques de mon fournisseur OIDC (session expiry, MFA si besoin) sans que je gère les credentials séparément.
Conclusion
Beszel complète parfaitement Uptime Kuma dans mon stack de monitoring. Kuma dit « le service répond ou pas ». Beszel dit « le serveur est sous quelle charge, depuis combien de temps, et sur quel container ». Les deux ensemble couvrent 100% de mes besoins de monitoring sans aucune configuration YAML complexe.
Le petit truc en plus
Beszel monitore aussi les containers Docker individuellement : CPU, RAM, réseau par container. C’est utile pour identifier quel service consomme anormalement. Sur mon cluster, j’ai découvert qu’un container FreshRSS faisait des requêtes HTTP en boucle à cause d’un flux RSS mal configuré et consommait 15% CPU en continu. Sans la vue par container de Beszel, j’aurais cherché longtemps.
👉 Pour aller plus loin : Uptime Kuma pour la disponibilité des services, Dockge pour gérer tes containers, et le setup homelab complet.
Beszel : le monitoring qui disparaît dans le décor
Beszel tourne en arrière-plan sans jamais se rappeler à moi, sauf quand il y a quelque chose à signaler. C’est exactement ce que j’attends d’un outil de monitoring.
Combine-le avec Uptime Kuma pour la disponibilité des services, et tu as une couverture monitoring complète de ton homelab.
FAQ
Beszel vs Grafana/Prometheus : quand choisir Beszel ?
Beszel = homelab simple, install en 5 min, UI propre out-of-the-box. Grafana/Prometheus = infra sérieuse avec métriques custom, alerting fin, long terme. Pour un homelab solo, Beszel suffit.
Beszel peut-il alerter sur Telegram en cas de souci ?
Oui, webhook natif. J’ai configuré les alertes Telegram : seuil CPU maintenu sur durée, disque à 80%, agent injoignable. Le même bot que mes autres services homelab.
Quelle est la différence entre hub et agent Beszel ?
Hub = UI centrale + base SQLite des métriques (1 instance). Agent = service léger à installer sur chaque hôte à monitorer (<20 Mo RAM). Communication via WebSocket chiffré, zéro port ouvert sur les agents.









