177 lines
6.4 KiB
Markdown
177 lines
6.4 KiB
Markdown
---
|
|
title: Beszel
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, monitoring, server, lightweight, hub, go, beginner, auto-hebergement]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Monitoring, https://github.com/henrygd/beszel]
|
|
---
|
|
|
|
# 📊 Beszel
|
|
|
|
> **Le hub de monitoring serveur ultra-léger** : CPU, RAM, disque, réseau + containers Docker, avec une UI web moderne. Alternative minimaliste à Netdata et Glances.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [beszel.dev](https://beszel.dev/) |
|
|
| **GitHub** | [henrygd/beszel](https://github.com/henrygd/beszel) |
|
|
| **License** | MIT |
|
|
| **Langage** | Go |
|
|
| **Étoiles GitHub** | 22.5k ⭐ |
|
|
| **Dernière MAJ** | 2026-06-07 |
|
|
| **Catégorie** | [[cat-monitoring|Monitoring]], Server Management |
|
|
|
|
## 📝 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)
|
|
|
|
```yaml
|
|
# 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)
|
|
|
|
```bash
|
|
# 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)
|
|
|
|
```yaml
|
|
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 Initiale
|
|
|
|
1. **Accéder au hub** : `http://IP:8090`
|
|
2. **Créer le compte admin** au premier lancement
|
|
3. **Ajouter un système** : copier la **clé publique** générée par le hub
|
|
4. **Installer l'agent** sur la machine cible avec cette clé
|
|
5. **Vérifier la connexion** : l'agent apparaît dans le hub en quelques secondes
|
|
6. **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
|
|
|
|
## 📚 Ressources
|
|
|
|
- [GitHub henrygd/beszel](https://github.com/henrygd/beszel)
|
|
- [Site officiel](https://beszel.dev/)
|
|
- [Documentation](https://beszel.dev/guide)
|
|
- [Démo publique](https://beszel.dev/demo)
|
|
|
|
## Pages Liées
|
|
|
|
- [[cat-monitoring]] — Catégorie Monitoring
|
|
- [[app-netdata]] — Métriques système riche
|
|
- [[app-glances]] — Monitoring CLI/web
|
|
- [[app-traefik]] — Reverse proxy HTTPS
|
|
- [[observabilite]] — Vue d'ensemble observabilité
|
|
- [[checklist-monitoring-minimal]] — Checklist
|