Docker Monitoring

Beszel : monitorer les ressources de son cluster homelab en temps réel

· 23/04/2026 · Mis à jour le 24/04/2026 · 6 min de lecture
Beszel — panneau de configuration des alertes (statut, CPU, mémoire, disque, bande passante)
En bref — Beszel est un monitoring système ultraléger (architecture hub + agents, <20MB RAM/agent) pour homelab. UI propre, métriques CPU/RAM/disque/réseau en temps réel sur toutes les VMs, LXC et containers, alertes configurables par seuil + durée, installable en 5 min. J’ai migré depuis Grafana+Prometheus : pour surveiller un cluster complet, Beszel suffit largement.

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.

Dashboard Beszel : vue de tous les systèmes homelab (VMs, LXC) avec CPU, RAM, disque en temps réel
Le dashboard principal : toutes les machines du cluster en un coup d’oeil, CPU/RAM/disque/réseau en temps réel.

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
Beszel : liste de tous les containers Docker avec CPU, mémoire et image
Vue containers Docker par système : CPU, RAM, réseau et image source par container.
Beszel : détail DebianPrio avec graphiques CPU et mémoire Docker sur 1 heure
Détail d’un système : CPU global, CPU Docker par container, RAM système et RAM Docker sur 1 heure.

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.

Beszel : graphiques charge système 1/5/15 min et températures des capteurs
Graphiques charge moyenne (1/5/15 min) et températures des capteurs sur la durée.

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.

Beszel : panneau de configuration des alertes (statut, CPU, mémoire, disque, bande passante)
Le panneau d’alertes Beszel : statut, CPU, mémoire, disque, bande passante, GPU, température.

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.

Vous avez aimé cet article ?

Rejoignez la newsletter : nouveaux articles & contenu exclusif directement par mail, sans pubs.

Je m'abonne

Pour aller plus loin