diff --git a/beszel/docker-compose-agent-effiserver.yml b/beszel/docker-compose-agent-effiserver.yml index d4283d3..55a1134 100644 --- a/beszel/docker-compose-agent-effiserver.yml +++ b/beszel/docker-compose-agent-effiserver.yml @@ -1,5 +1,5 @@ # Beszel Agent - EffiServer (192.168.1.27) -# Agent pour monitoring EffiServer (Intel J5040) +# Emplacement: ~/effi/beszel sur Fedora services: beszel-agent: diff --git a/beszel/docker-compose-hub.yml b/beszel/docker-compose-hub.yml index ceb6371..d81b8f0 100644 --- a/beszel/docker-compose-hub.yml +++ b/beszel/docker-compose-hub.yml @@ -1,5 +1,5 @@ # Beszel Hub - Synology NAS -# Monitoring central pour FolzoCorp et EffiServer +# Emplacement: /volume1/docker/beszel services: beszel: diff --git a/docs/BESZEL-INSTALLATION.md b/docs/BESZEL-INSTALLATION.md index f2b0689..fd506de 100644 --- a/docs/BESZEL-INSTALLATION.md +++ b/docs/BESZEL-INSTALLATION.md @@ -9,6 +9,7 @@ Beszel est un système de monitoring léger pour serveurs avec historique, stats ``` ┌─────────────────────────────────────────────────────────────┐ │ NAS Synology (192.168.1.25) │ +│ Emplacement: /volume1/docker/beszel │ │ Beszel Hub │ │ Port: 8090 │ └─────────────────────────────────────────────────────────────┘ @@ -17,6 +18,7 @@ Beszel est un système de monitoring léger pour serveurs avec historique, stats ▼ ▼ ┌─────────────────────────────┐ ┌─────────────────────────────┐ │ FolzoCorp (192.168.1.11) │ │ EffiServer (192.168.1.27) │ +│ (dans projet Effi) │ │ Emplacement: ~/effi/beszel │ │ Agent Beszel │ │ Agent Beszel │ │ GPU: AMD RX 7800 XT │ │ CPU: Intel J5040 │ │ RAM: 32GB │ │ RAM: 8GB │ @@ -27,11 +29,12 @@ Beszel est un système de monitoring léger pour serveurs avec historique, stats ## 1. Installation Hub - NAS Synology (192.168.1.25) -### Étape 1: Copier les fichiers +### Étape 1: Créer le répertoire et copier les fichiers ```bash # Sur le NAS Synology (via SSH) -mkdir -p ~/beszel && cd ~/beszel +mkdir -p /volume1/docker/beszel +cd /volume1/docker/beszel # Copier le fichier docker-compose depuis FolzoCorp scp folzo@192.168.1.11:~/Documents/OpenCode/Projets/Effi/beszel/docker-compose-hub.yml ./ @@ -40,7 +43,7 @@ scp folzo@192.168.1.11:~/Documents/OpenCode/Projets/Effi/beszel/docker-compose-h ### Étape 2: Démarrer le Hub ```bash -cd ~/beszel +cd /volume1/docker/beszel docker compose up -d ``` @@ -54,22 +57,59 @@ docker compose up -d ## 2. Installation Agent - FolzoCorp (192.168.1.11) -### Étape 1: Préparer le répertoire +L'agent Beszel pour FolzoCorp est déjà inclus dans le projet Effi. -```bash -mkdir -p ~/beszel-agent && cd ~/beszel-agent +### Emplacement + +``` +/home/folzo/Documents/OpenCode/Projets/Effi/beszel/ ``` -### Étape 2: Copier la configuration +### Étape 1: Démarrer l'agent -Le fichier `docker-compose-agent-folzocorp.yml` est dans le projet Effi: ```bash -cp ~/Documents/OpenCode/Projets/Effi/beszel/docker-compose-agent-folzocorp.yml ./ +cd /home/folzo/Documents/OpenCode/Projets/Effi/beszel +cp docker-compose-agent-folzocorp.yml docker-compose.yml +docker compose up -d ``` -### Étape 3: Démarrer l'agent +### Étape 2: Récupérer TOKEN et KEY + +Après le premier démarrage, l'agent génère un TOKEN et KEY uniques. ```bash +# Voir les logs pour récupérer les identifiants +docker logs beszel-agent +``` + +Chercher les lignes типа: +``` +agent listening on /var/run/beszel-agent/beszel.sock +hub: http://192.168.1.25:8090 +token: +key: +``` + +### Étape 3: Mettre à jour docker-compose avec TOKEN et KEY + +```bash +# Arrêter l'agent +docker compose down + +# Éditer docker-compose.yml et remplacer TOKEN et KEY +nano docker-compose.yml +``` + +Modifier: +```yaml +environment: + HUB_URL: http://192.168.1.25:8090 + TOKEN: + KEY: "" +``` + +```bash +# Redémarrer docker compose up -d ``` @@ -79,66 +119,92 @@ docker compose up -d 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 - -```bash -# 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 - -```bash -# 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) +### Emplacement + +``` +/home/effi/effi/beszel/ +``` + ### Étape 1: Se connecter en SSH ```bash ssh effi@192.168.1.27 ``` -### Étape 2: Préparer le répertoire - -```bash -mkdir -p ~/beszel-agent && cd ~/beszel-agent -``` - -### Étape 3: Copier la configuration +### Étape 2: Créer le répertoire et copier la configuration ```bash +mkdir -p ~/effi/beszel && cd ~/effi/beszel scp folzo@192.168.1.11:~/Documents/OpenCode/Projets/Effi/beszel/docker-compose-agent-effiserver.yml ./ +mv docker-compose-agent-effiserver.yml docker-compose.yml ``` -### Étape 4: Démarrer l'agent +### Étape 3: Démarrer l'agent ```bash +cd ~/effi/beszel docker compose up -d ``` -### Étape 5: Ajouter dans Beszel UI +### Étape 4: Récupérer TOKEN et KEY -Même procédure que FolzoCorp, mais utiliser `/var/run/beszel-agent/beszel.sock` +```bash +docker logs beszel-agent +``` + +### Étape 5: Configurer TOKEN et KEY + +```bash +docker compose down +nano docker-compose.yml +# Ajouter TOKEN et KEY +docker compose up -d +``` + +### Étape 6: Ajouter dans Beszel UI + +Même procédure que FolzoCorp, utiliser `/var/run/beszel-agent/beszel.sock` --- -## 4. Endpoints API Beszel +## 4. Commandes rapides + +### FolzoCorp + +```bash +# Démarrer +cd /home/folzo/Documents/OpenCode/Projets/Effi/beszel +docker compose up -d + +# Voir les logs +docker logs -f beszel-agent + +# Arrêter +docker compose down +``` + +### EffiServer + +```bash +# Démarrer +cd ~/effi/beszel +docker compose up -d + +# Voir les logs +docker logs -f beszel-agent + +# Arrêter +docker compose down +``` + +--- + +## 5. Endpoints API Beszel Beszel expose une API REST pour qu'Effi puisse récupérer les métriques. @@ -159,7 +225,7 @@ curl http://192.168.1.25:8090/api/systems \ -H "Authorization: Bearer " # Stats détaillées d'un système -curl http://192.168.1.25:8090/api/systems//stats \ +curl http://192.168.168.1.25:8090/api/systems//stats \ -H "Authorization: Bearer " ``` @@ -194,65 +260,58 @@ curl http://192.168.1.25:8090/api/systems//stats \ --- -## 5. Scripts Effi pour interroger Beszel +## 6. Script Effi pour interroger Beszel -### Script Python pour récupérer les stats +Le script `scripts/beszel_client.py` permet à Effi de récupérer les métriques. -```python -import requests -import os +### Utilisation -BESZEL_URL = "http://192.168.1.25:8090" -USERNAME = os.getenv("BESZEL_USER", "admin") -PASSWORD = os.getenv("BESZEL_PASSWORD", "") +```bash +# Lister les systèmes +python3 scripts/beszel_client.py --list-systems -def get_beszel_token(): - response = requests.post(f"{BESZEL_URL}/api/auth/login", json={ - "identity": USERNAME, - "password": PASSWORD - }) - return response.json().get("token") +# Stats d'un système +python3 scripts/beszel_client.py --system folzocorp --check stats -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() +# Vérifier les alertes +python3 scripts/beszel_client.py --system folzocorp --check alerts -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%") +# Output JSON +python3 scripts/beszel_client.py --system folzocorp --check stats --json +``` + +### Variables d'environnement + +```bash +export BESZEL_URL=http://192.168.1.25:8090 +export BESZEL_USER=admin +export BESZEL_PASSWORD=votre_password ``` --- -## 6. Alertes +## 7. Alertes recommandées -### Configurer des alertes dans Beszel UI +### FolzoCorp -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 | Warning | Critical | +|----------|---------|----------| +| CPU | 70% | 90% | +| RAM | 80% | 95% | +| VRAM | 75% | 90% | +| GPU Utilization | 80% | 95% | -| Métrique | Seuil Warning | Seuil Critical | -|----------|---------------|----------------| +### EffiServer + +| Métrique | Warning | Critical | +|----------|---------|----------| | CPU | 70% | 90% | | RAM | 80% | 95% | -| VRAM | 80% | 95% | | Disk | 80% | 90% | --- -## 7. Dépannage +## Dépannage ### Agent ne démarre pas @@ -264,17 +323,6 @@ docker logs beszel-agent curl http://192.168.1.25:8090/health ``` -### GPU non détecté sur FolzoCorp - -```bash -# Vérifier les permissions GPU -ls -la /dev/kfd -ls -la /dev/dri/ - -# Tester rocm-smi manuellement -rocm-smi --showmeminfo vram -``` - ### Socket non accessible ```bash @@ -287,28 +335,13 @@ docker restart beszel-agent --- -## Fichiers de configuration +## Résumé emplacements -| 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é +| Système | Emplacement | Configuration | +|---------|-------------|---------------| +| Synology NAS | `/volume1/docker/beszel` | docker-compose-hub.yml | +| FolzoCorp | `/home/folzo/Documents/OpenCode/Projets/Effi/beszel` | docker-compose-agent-folzocorp.yml | +| EffiServer | `/home/effi/effi/beszel` | docker-compose-agent-effiserver.yml | ---