Files
Effi/docs/BESZEL-INSTALLATION.md
T
Folzo 8b1338f824 feat(beszel): Installation Beszel monitoring infrastructure
- Ajout Hub Beszel pour Synology NAS (192.168.1.25)
  - docker-compose-hub.yml
- Ajout Agent FolzoCorp avec GPU AMD RX 7800 XT
  - docker-compose-agent-folzocorp.yml (amd_sysfs)
- Ajout Agent EffiServer (CPU only, SKIP_GPU)
  - docker-compose-agent-effiserver.yml
- Documentation: docs/BESZEL-INSTALLATION.md
- Script client Python: scripts/beszel_client.py
  - Permet à Effi d'interroger l'API Beszel
2026-04-12 09:29:59 +02:00

7.6 KiB

Installation Beszel - Monitoring Infrastructure

Vue d'ensemble

Beszel est un système de monitoring léger pour serveurs avec historique, stats Docker et alertes.

Architecture

┌─────────────────────────────────────────────────────────────┐
│                    NAS Synology (192.168.1.25)               │
│                         Beszel Hub                          │
│                         Port: 8090                          │
└─────────────────────────────────────────────────────────────┘
                    │                           │
                    │                           │
                    ▼                           ▼
┌─────────────────────────────┐   ┌─────────────────────────────┐
│      FolzoCorp (192.168.1.11)      │   │    EffiServer (192.168.1.27)   │
│      Agent Beszel                  │   │         Agent Beszel            │
│      GPU: AMD RX 7800 XT           │   │         CPU: Intel J5040         │
│      RAM: 32GB                      │   │         RAM: 8GB                 │
└─────────────────────────────┘   └─────────────────────────────┘

1. Installation Hub - NAS Synology (192.168.1.25)

Étape 1: Copier les fichiers

# Sur le NAS Synology (via SSH)
mkdir -p ~/beszel && cd ~/beszel

# Copier le fichier docker-compose depuis FolzoCorp
scp folzo@192.168.1.11:~/Documents/OpenCode/Projets/Effi/beszel/docker-compose-hub.yml ./

Étape 2: Démarrer le Hub

cd ~/beszel
docker compose up -d

Étape 3: Créer le compte admin

  1. Ouvrir http://192.168.1.25:8090
  2. Créer un compte admin
  3. Noter les identifiants

2. Installation Agent - FolzoCorp (192.168.1.11)

Étape 1: Préparer le répertoire

mkdir -p ~/beszel-agent && cd ~/beszel-agent

Étape 2: Copier la configuration

Le fichier docker-compose-agent-folzocorp.yml est dans le projet Effi:

cp ~/Documents/OpenCode/Projets/Effi/beszel/docker-compose-agent-folzocorp.yml ./

Étape 3: Démarrer l'agent

docker compose up -d

Étape 4: Ajouter le système dans Beszel UI

  1. Ouvrir http://192.168.1.25:8090
  2. Cliquer Add System
  3. Choisir Socket comme type
  4. Utiliser le chemin: /var/run/beszel-agent/beszel.sock
  5. Récupérer le TOKEN et KEY affichés

Étape 5: Configurer TOKEN et KEY

# Arrêter l'agent
docker compose down

# Éditer docker-compose.yml et ajouter TOKEN et KEY
nano docker-compose.yml

# Redémarrer
docker compose up -d

Vérification GPU

# Vérifier que le monitoring GPU fonctionne
docker exec beszel-agent beszel-agent status

# Ou vérifier les logs
docker logs beszel-agent | grep -i gpu

3. Installation Agent - EffiServer (192.168.1.27)

Étape 1: Se connecter en SSH

ssh effi@192.168.1.27

Étape 2: Préparer le répertoire

mkdir -p ~/beszel-agent && cd ~/beszel-agent

Étape 3: Copier la configuration

scp folzo@192.168.1.11:~/Documents/OpenCode/Projets/Effi/beszel/docker-compose-agent-effiserver.yml ./

Étape 4: Démarrer l'agent

docker compose up -d

Étape 5: Ajouter dans Beszel UI

Même procédure que FolzoCorp, mais utiliser /var/run/beszel-agent/beszel.sock


4. Endpoints API Beszel

Beszel expose une API REST pour qu'Effi puisse récupérer les métriques.

Authentification

# Login pour obtenir un token
curl -X POST http://192.168.1.25:8090/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"identity": "admin", "password": "votre_password"}'

Récupérer les stats d'un système

# Lister les systèmes
curl http://192.168.1.25:8090/api/systems \
  -H "Authorization: Bearer <token>"

# Stats détaillées d'un système
curl http://192.168.1.25:8090/api/systems/<system_id>/stats \
  -H "Authorization: Bearer <token>"

Exemple de réponse stats

{
  "cpu": 12.5,
  "memory": 45.2,
  "swap": 8.1,
  "disk": 67.3,
  "load": [1.2, 0.8, 0.5],
  "temperature": {},
  "gpu": {
    "AMD RX 7800 XT": {
      "memory_used": 1788194816,
      "memory_total": 17163091968,
      "utilization_gpu": 3,
      "power_draw": 20
    }
  },
  "containers": [
    {
      "id": "abc123",
      "name": "comfyui",
      "cpu_percent": 0.5,
      "memory_percent": 48.69
    }
  ]
}

5. Scripts Effi pour interroger Beszel

Script Python pour récupérer les stats

import requests
import os

BESZEL_URL = "http://192.168.1.25:8090"
USERNAME = os.getenv("BESZEL_USER", "admin")
PASSWORD = os.getenv("BESZEL_PASSWORD", "")

def get_beszel_token():
    response = requests.post(f"{BESZEL_URL}/api/auth/login", json={
        "identity": USERNAME,
        "password": PASSWORD
    })
    return response.json().get("token")

def get_system_stats(system_id, token):
    headers = {"Authorization": f"Bearer {token}"}
    response = requests.get(f"{BESZEL_URL}/api/systems/{system_id}/stats", headers=headers)
    return response.json()

def check_resource_usage():
    token = get_beszel_token()
    
    # FolzoCorp
    folzo_stats = get_system_stats("folzocorp", token)
    if folzo_stats["memory"]["used_percent"] > 90:
        print("⚠️ FolzoCorp RAM > 90%")
    
    # EffiServer
    effi_stats = get_system_stats("effiserver", token)
    if effi_stats["cpu"] > 80:
        print("⚠️ EffiServer CPU > 80%")

6. Alertes

Configurer des alertes dans Beszel UI

  1. Ouvrir http://192.168.1.25:8090
  2. Cliquer sur un système → Edit
  3. Aller dans Alerts tab
  4. Configurer les alertes souhaitées:
Métrique Seuil Warning Seuil Critical
CPU 70% 90%
RAM 80% 95%
VRAM 80% 95%
Disk 80% 90%

7. Dépannage

Agent ne démarre pas

# Vérifier les logs
docker logs beszel-agent

# Vérifier la connectivité au Hub
curl http://192.168.1.25:8090/health

GPU non détecté sur FolzoCorp

# Vérifier les permissions GPU
ls -la /dev/kfd
ls -la /dev/dri/

# Tester rocm-smi manuellement
rocm-smi --showmeminfo vram

Socket non accessible

# Vérifier que le socket existe
ls -la /var/run/beszel-agent/

# Redémarrer l'agent
docker restart beszel-agent

Fichiers de configuration

Fichier Emplacement Description
docker-compose-hub.yml Synology NAS Configuration Hub
docker-compose-agent-folzocorp.yml FolzoCorp Agent FolzoCorp avec GPU AMD
docker-compose-agent-effiserver.yml EffiServer Agent EffiServer (CPU only)

Monitoring GPU

FolzoCorp (AMD RX 7800 XT)

  • Utilise amd_sysfs collector (recommandé)
  • Métriques: VRAM, utilisation GPU, power draw
  • Pas besoin de rocm-smi (amd_sysfs plus efficace)

EffiServer (Intel J5040)

  • GPU monitoring désactivé (SKIP_GPU=true)
  • J5040 n'a pas de GPU dédié

Liens utiles