Post

đŸ‘ïž Beszel surveillance serveur

đŸ‘ïž Beszel surveillance serveur

Beszel est une plate-forme de surveillance de serveur lĂ©gĂšre qui comprend des statistiques Docker, des donnĂ©es historiques et des fonctions d’alerte. Il a une interface Web conviviale, une configuration simple, et est prĂȘt Ă  ĂȘtre utilisĂ© hors de la boĂźte. Il prend en charge la sauvegarde automatique, l’authentification multi-utilisateur, OAuth et l’accĂšs API.

Beszel

Beszel est Ă©crit en Go pur et peut ĂȘtre facilement compilĂ© si un binaire prĂ©construit n’est pas disponible

Caractéristiques

  • Lightweight: plus petit et moins gourmand en ressources que les solutions de pointe.
  • Simple : Configuration facile avec peu de configuration manuelle requise.
  • Statistiques Docker: Suit l’historique d’utilisation du processeur, de la mĂ©moire et du rĂ©seau pour chaque conteneur.
  • Alerts: Alertes configurables pour CPU, mĂ©moire, disque, bande passante, tempĂ©rature, moyenne de charge et statut.
  • Multi-utilisateur: Les utilisateurs gĂšrent leurs propres systĂšmes. Les administrateurs peuvent partager des systĂšmes entre les utilisateurs.
  • OAuth / OIDC : Prend en charge de nombreux fournisseurs OAuth2. Password auth peut ĂȘtre dĂ©sactivĂ©.
  • Sauvegardes automatiques: Enregistrer et restaurer Ă  partir du disque ou du stockage compatible S3.

Architecture

Beszel se compose de deux composants principaux: le moyeu et l’agent.

Linux script installation

Cette commande tĂ©lĂ©charge et exĂ©cute notre script install-hub.sh. Le script installe le dernier binaire et crĂ©e un service systemd pour le maintenir en cours d’exĂ©cution aprĂšs le redĂ©marrage.

  • -u: DĂ©sinstaller
  • -p <port>: SpĂ©cifier un numĂ©ro de port (par dĂ©faut: 8090)
  • -c <url>: Utilisez une URL miroir GitHub personnalisĂ©e (par exemple https://ghfast.top/)
  • --auto-update: Activer les mises Ă  jour quotidiennes automatiques
  • -h: Afficher l’aide
1
curl -sL https://get.beszel.dev/hub -o /tmp/install-hub.sh && chmod +x /tmp/install-hub.sh && /tmp/install-hub.sh

Le hub est démarré

Proxy nginx

Créer un proxy nginx sur le serveur debian

1
sudo nano /etc/nginx/conf.d/beszel.rnmkcy.eu.conf

Y ajouter le contenu suivant

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
server {
    listen 443 ssl;
    listen [::]:443 ssl;
    http2 on;
    server_name beszel.rnmkcy.eu;
	client_max_body_size 10M;

    include /etc/nginx/conf.d/ssl-modern.inc;

	location / {
		proxy_read_timeout 360s;
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "upgrade";

		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;

		proxy_pass http://127.0.0.1:8090;
	}
}

Recharger nginx

1
sudo systemctl reload nginx

Créer un utilisateur administrateur

AprĂšs avoir dĂ©marrĂ© le hub, accĂ©dez Ă  https://beszel.rnmkcy.eu ou Ă  l’adresse choisie.

Vous serez invité à créer un compte:

Configurer votre premier systĂšme

Cliquez sur le bouton Ajouter SystĂšme dans le coin supĂ©rieur droit pour ouvrir la boĂźte de dialogue de crĂ©ation du systĂšme. Nous ajoutons l’agent sur le hub cwwk

Remarque: À partir de 0.12.0, vous pouvez Ă©galement utiliser un jeton universel (/settings/tokens) de connecter l’agent au hub sans avoir besoin de le configurer Ă  l’avance.

Agent sur hub

Variables requises

  • KEY: La clĂ© publique affichĂ©e lors de l’ajout d’un systĂšme dans le Hub.
  • TOKEN: UtilisĂ© pour authentifier l’agent (voir /settings/tokens).
  • HUB_URL: UtilisĂ© pour la connexion WebSocket sortante (non nĂ©cessaire pour la connexion SSH).

ExĂ©cuter la commande linux copiĂ©e prĂ©cĂ©demment pour installer l’agent (elle contient la clĂ© publique et le token)

1
curl -sL https://get.beszel.dev -o /tmp/install-agent.sh && chmod +x /tmp/install-agent.sh && /tmp/install-agent.sh -p 45876 -k "ssh-ed25519 A...k+YIt" -t "8f...8e" -url "https://beszel.rnmkcy.eu"

L’agent est dĂ©marrĂ© automatiquement aprĂšs l’installation et le tableau de bord est actualisĂ©

Agent (binaire+systemd)

Sur le hub, Ajouter SystĂšme
La commande est à exécuter sur le distant

1
curl -sL https://get.beszel.dev -o /tmp/install-agent.sh && chmod +x /tmp/install-agent.sh && /tmp/install-agent.sh -p 45876 -k "ssh-ed25519 AAAA...It" -t "07...75" -url "https://beszel.rnmkcy.eu"

Agent (docker compose)

Sur le hub, Ajouter SystĂšme

Sur le distant avec docker

1
2
3
mkdir $HOME/bezel
cd $HOME/bezel
nano docker-compose.yml

Copier le texte ci-dessous

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
services:
  beszel-agent:
    image: henrygd/beszel-agent
    container_name: beszel-agent
    restart: unless-stopped
    network_mode: host
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./beszel_agent_data:/var/lib/beszel-agent
      # monitor other disks / partitions by mounting a folder in /extra-filesystems
      # - /mnt/disk/.beszel:/extra-filesystems/sda1:ro
    environment:
      LISTEN: 45876
      KEY: 'ssh-ed25519 AAAA...It'
      TOKEN: 8b...f5
      HUB_URL: https://beszel.rnmkcy.eu

DĂ©marrer l’agent:

1
docker compose up -d

Notifications

ntfy: serveur privé accessible par token

Configuration beszel

Résultat du test sur le serveur ntfy

Configuration des alertes

Beszel intùgre un systùme d’alerte simple mais efficace. Il se configure au niveau de chaque systùme (ou au niveau global), c’est-à-dire chaque agent, mais via l’interface du serveur.

Depuis la page d’accueil, cliquez sur la cloche en bout de ligne sur l’un des systùmes.
Un panneau latĂ©ral s’affiche. Il permet de configurer les alertes pour le systĂšme sĂ©lectionnĂ© ou pour tous les systĂšmes. Le systĂšme est basique mais suffisant pour ĂȘtre alertĂ© en cas de problĂšme sur le serveur supervisĂ©.

Par exemple, si le serveur est injoignable pendant 3 minutes, vous pouvez recevoir une alerte. Autre exemple : recevoir une alerte si la mĂ©moire dĂ©passe 80% pendant 8 minutes. À vous de configurer les diffĂ©rents seuils, selon vos besoins.

Options d’installation

Téléchargement et démarrage manuel (Linux, FreeBSD, autres)

Télécharger le binaire

TĂ©lĂ©chargez le dernier binaire Ă  partir de versions qui correspondent Ă  l’OS / architecture de votre serveur.

1
curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel-agent_$(uname -s)_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/armv6l/arm/' -e 's/armv7l/arm/' -e 's/aarch64/arm64/').tar.gz" | tar -xz beszel-agent

DĂ©marrer l’agent

Utilisation -hpour voir toutes les options disponibles.

1
./beszel-agent -key "<public key>" -token "<token>" -url "<hub url>"

Mettre à jour l’agent

1
./beszel-agent update

Créer un service (facultatif)

Si votre systĂšme est symposĂ©, vous pouvez crĂ©er un service pour maintenir l’agent en cours d’exĂ©cution aprĂšs le redĂ©marrage.

1-CrĂ©er un fichier de service dans /etc/systemd/system/beszel-agent.service. Remplacer les valeurs de l’espace rĂ©servĂ© (p. ex., <path-to-binary>, <public key>) avec votre configuration rĂ©elle. Vous pouvez Ă©galement utiliser KEY_FILEet TOKEN_FILEpour charger des secrets Ă  partir de fichiers protĂ©gĂ©s (voir le numĂ©ro 1627).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[Unit]
Description=Beszel Agent Service
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=<path-to-binary>/beszel-agent
Environment="LISTEN=45876"
Environment="KEY=<public key>"
Environment="TOKEN=<token>"
Environment="HUB_URL=<hub url>"
# Environment="EXTRA_FILESYSTEMS=sdb"
Restart=on-failure
RestartSec=5
StateDirectory=beszel-agent

# Security/sandboxing settings
KeyringMode=private
LockPersonality=yes
NoNewPrivileges=yes
ProtectClock=yes
ProtectHome=read-only
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectSystem=strict
RemoveIPC=yes
RestrictSUIDSGID=true

[Install]
WantedBy=multi-user.target

2-Activez et démarrez le service.

1
2
3
sudo systemctl daemon-reload
sudo systemctl enable beszel-agent.service
sudo systemctl start beszel-agent.service

Compilation

Le hub et l’agent sont tous deux Ă©crits en Go, de sorte que vous pouvez facilement les construire vous-mĂȘme, ou compiler en croix pour diffĂ©rentes plates-formes. Veuillez d’abord installer Go si vous ne l’avez pas dĂ©jĂ  fait.

Cloner le dépÎt

1
2
3
4
# Clone the repository
git clone --branch v0.18.7 --depth 1 https://github.com/henrygd/beszel.git
# Navigate to the repository
cd beszel

Utilisation de Makefile

Exécuter make. Cela crée un répertoire build contenant les binaires.

1
2
3
4
5
6
# Builds both the agent and hub
make
# Builds the agent only
make build-agent
# Builds the hub only (requires Node or Bun)
make build-hub

Vous pouvez également construire pour différentes plateformes:

1
make OS=freebsd ARCH=arm64

Voir une liste des options valides en exécutant

1
go tool dist list
Cet article est sous licence CC BY 4.0 par l'auteur.