- 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
7.6 KiB
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
- Ouvrir http://192.168.1.25:8090
- Créer un compte admin
- 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
- Ouvrir http://192.168.1.25:8090
- Cliquer Add System
- Choisir Socket comme type
- Utiliser le chemin:
/var/run/beszel-agent/beszel.sock - 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
- Ouvrir http://192.168.1.25:8090
- Cliquer sur un système → Edit
- Aller dans Alerts tab
- 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_sysfscollector (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é