Aller au contenu principal
Logo GiwiSoft
Beszel : le monitoring léger et simple qui ne ruine pas votre Raspberry Pi

Beszel : le monitoring léger et simple qui ne ruine pas votre Raspberry Pi

Xavier MARIN Xavier MARIN Non classé 4 min

Vous monitorer vos serveurs avec Prometheus + Grafana + Node Exporter ? Moi aussi. C’est puissant, mais c’est lourd : des containers partout, des tonnes de config, et une consommation de ressources qui fait de l’ombre à vos applis.

Je viens de remplacer tout ça par Beszel. 17 Mo de binaire Go, une image Docker de 5 Mo, un dashboard prêt à l’emploi, et un agent qui tient sur un Raspberry Pi Zero.

Le principe : Hub + Agent

Beszel repose sur une architecture à deux composants :

  • Le Hub : une interface web construite sur PocketBase qui centralise toutes les métriques. Un seul binaire Go, zéro dépendance.
  • L’Agent : s’installe sur chaque machine à monitorer et remonte CPU, RAM, disque, réseau, température, GPU et les statistiques Docker.

Les agents se connectent au Hub en WebSocket sortant, ce qui évite d’ouvrir des ports sur vos serveurs. Pratique quand on veut monitorer des machines chez des amis sans toucher au pare-feu.

Déploiement Docker sur Raspberry Pi

Le Hub et son agent tournent sur un Pi 4 en ARM64 sans sourciller. Voici le docker-compose.yml complet avec un agent local :

services:
beszel:
image: henrygd/beszel:latest
container_name: beszel
restart: unless-stopped
environment:
APP_URL: https://beszel.mondomaine.fr
ports:
- 8090:8090
volumes:
- ./beszel_data:/beszel_data
- ./beszel_socket:/beszel_socket

beszel-agent:
image: henrygd/beszel-agent:latest
container_name: beszel-agent
restart: unless-stopped
network_mode: host
volumes:
- ./beszel_agent_data:/var/lib/beszel-agent
- ./beszel_socket:/beszel_socket
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
LISTEN: /beszel_socket/beszel.sock
HUB_URL: https://beszel.mondomaine.fr
TOKEN: "<votre-token>"
KEY: "<votre-cle-ssh>"

Un docker compose up -d et le dashboard est accessible sur le port 8090. La première connexion vous demande de créer un compte admin.

L’image henrygd/beszel existe pour amd64 et arm64. Pas de multiarch à configurer, ça tourne nativement.

Pour ajouter un serveur distant, le Hub vous génère directement la commande d’installation de l’agent — binaire ou Docker — avec la clé et le token déjà injectés. C’est un copier-coller, rien de plus.

Ce qu’on voit dans le dashboard

Une fois les agents connectés, le Hub affiche pour chaque machine :

  • CPU : usage global + breakdown par conteneur Docker
  • Mémoire : RAM, swap, cache ZFS ARC
  • Disque : utilisation, I/O en lecture/écriture, plusieurs partitions
  • Réseau : bande passante entrante/sortante par interface et par conteneur
  • Température : sondes matérielles du CPU
  • GPU : utilisation et consommation pour Nvidia, AMD et Intel
  • Batterie : niveau de charge pour les laptops ou onduleurs

Tout est historisé. Vous naviguez dans le temps avec un curseur, comme sur Grafana, sans avoir à configurer de datasource.

Alertes configurables

Beszel supporte les alertes par CPU, mémoire, disque, bande passante, température, load average, et statut (up/down).

La configuration se fait dans l’UI, avec les notifications vers Discord, Telegram, Slack, Gotify, Ntfy, Signal, Matrix, et même MQTT. Pas de webhook à bricoler, tout est prêt :

# Exemple de configuration via variables d'environnement
environment:
NOTIFICATION_DISCORD_WEBHOOK_URL: https://discord.com/api/webhooks/...
NOTIFICATION_CPU_THRESHOLD: 80
NOTIFICATION_MEMORY_THRESHOLD: 90

Backup automatique

Le Hub sauvegarde automatiquement les données (SQLite + historique) sur disque ou vers un bucket S3. En cas de crash du Raspberry Pi, on restaure le volume et tout revient.

Comparatif avec les alternatives

CritèrePrometheus + GrafanaNetdataBeszel
Images Docker4+ (prom, node, graf…)1 (lourd ~300 Mo)2 (hub + agent, ~5 Mo)
Binaire uniqueNonNonOui (17 Mo, Go)
Dashboard prêt à l’emploiGrafana à configurerOuiOui
Historique natifOuiLimitéOui
Docker statsVia cAdvisorOuiOui
MultiserveurOuiVia CloudOui (WebSocket)
Consommation RAMLourde (Go, TSDB)ModéréeInfime
SSO / OAuthVia reverse-proxyNonOui (OIDC)
LicenceApache 2.0GPLv3MIT

Pourquoi j’ai quitté Prometheus + Grafana pour Beszel

J’utilisais Prometheus + Grafana + Node Exporter + cAdvisor depuis des années. C’est une stack éprouvée, mais qui devient disproportionnée quand on a 3 Raspberry Pi et un VPS chez OVH. L’overhead mental (alerting rules en YAML, datasources, dashboard JSON) est colossal.

Beszel ne remplace pas Prometheus pour du monitoring à 200 nœuds. Mais pour un homelab, un petit parc de serveurs, ou le monitoring de votre infra perso, c’est parfait :

  • Installation en 2 minutes : un docker compose, un copier-coller pour chaque agent.
  • Dashboard clé en main : pas de panneau à construire, les graphes sont déjà là.
  • Consommation négligeable : le Hub et l’agent tiennent dans 30 Mo de RAM cumulés.
  • Statistiques Docker : chaque conteneur voit son CPU, RAM et réseau remontés sans config supplémentaire.

Conclusion

Beszel, c’est le couteau suisse du monitoring léger. Derrière une simplicité trompeuse, il couvre 90% des besoins d’un homelab ou d’une petite infrastructure : CPU, RAM, disque, réseau, Docker, GPU, alertes, backups, OAuth.

Si comme moi vous en avez assez de passer vos dimanches à bidouiller des dashboards Grafana, installez Beszel. Vous aurez fini avant l’apéro.