- Synology NAS: /volume1/docker/beszel - EffiServer: ~/effi/beszel - FolzoCorp: chemin projet Effi (inchangé)
354 lines
7.8 KiB
Markdown
354 lines
7.8 KiB
Markdown
# 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) │
|
|
│ Emplacement: /volume1/docker/beszel │
|
|
│ Beszel Hub │
|
|
│ Port: 8090 │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
│ │
|
|
│ │
|
|
▼ ▼
|
|
┌─────────────────────────────┐ ┌─────────────────────────────┐
|
|
│ 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 │
|
|
└─────────────────────────────┘ └─────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## 1. Installation Hub - NAS Synology (192.168.1.25)
|
|
|
|
### Étape 1: Créer le répertoire et copier les fichiers
|
|
|
|
```bash
|
|
# Sur le NAS Synology (via SSH)
|
|
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 ./
|
|
```
|
|
|
|
### Étape 2: Démarrer le Hub
|
|
|
|
```bash
|
|
cd /volume1/docker/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)
|
|
|
|
L'agent Beszel pour FolzoCorp est déjà inclus dans le projet Effi.
|
|
|
|
### Emplacement
|
|
|
|
```
|
|
/home/folzo/Documents/OpenCode/Projets/Effi/beszel/
|
|
```
|
|
|
|
### Étape 1: Démarrer l'agent
|
|
|
|
```bash
|
|
cd /home/folzo/Documents/OpenCode/Projets/Effi/beszel
|
|
cp docker-compose-agent-folzocorp.yml docker-compose.yml
|
|
docker compose up -d
|
|
```
|
|
|
|
### É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: <TOKEN_AFFICHE>
|
|
key: <KEY_AFFICHE>
|
|
```
|
|
|
|
### É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: <TOKEN>
|
|
KEY: "<KEY>"
|
|
```
|
|
|
|
```bash
|
|
# Redémarrer
|
|
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`
|
|
|
|
---
|
|
|
|
## 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: 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 3: Démarrer l'agent
|
|
|
|
```bash
|
|
cd ~/effi/beszel
|
|
docker compose up -d
|
|
```
|
|
|
|
### Étape 4: Récupérer TOKEN et KEY
|
|
|
|
```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. 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.
|
|
|
|
### Authentification
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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.168.1.25:8090/api/systems/<system_id>/stats \
|
|
-H "Authorization: Bearer <token>"
|
|
```
|
|
|
|
### Exemple de réponse stats
|
|
|
|
```json
|
|
{
|
|
"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
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 6. Script Effi pour interroger Beszel
|
|
|
|
Le script `scripts/beszel_client.py` permet à Effi de récupérer les métriques.
|
|
|
|
### Utilisation
|
|
|
|
```bash
|
|
# Lister les systèmes
|
|
python3 scripts/beszel_client.py --list-systems
|
|
|
|
# Stats d'un système
|
|
python3 scripts/beszel_client.py --system folzocorp --check stats
|
|
|
|
# Vérifier les alertes
|
|
python3 scripts/beszel_client.py --system folzocorp --check alerts
|
|
|
|
# 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
|
|
```
|
|
|
|
---
|
|
|
|
## 7. Alertes recommandées
|
|
|
|
### FolzoCorp
|
|
|
|
| Métrique | Warning | Critical |
|
|
|----------|---------|----------|
|
|
| CPU | 70% | 90% |
|
|
| RAM | 80% | 95% |
|
|
| VRAM | 75% | 90% |
|
|
| GPU Utilization | 80% | 95% |
|
|
|
|
### EffiServer
|
|
|
|
| Métrique | Warning | Critical |
|
|
|----------|---------|----------|
|
|
| CPU | 70% | 90% |
|
|
| RAM | 80% | 95% |
|
|
| Disk | 80% | 90% |
|
|
|
|
---
|
|
|
|
## Dépannage
|
|
|
|
### Agent ne démarre pas
|
|
|
|
```bash
|
|
# Vérifier les logs
|
|
docker logs beszel-agent
|
|
|
|
# Vérifier la connectivité au Hub
|
|
curl http://192.168.1.25:8090/health
|
|
```
|
|
|
|
### Socket non accessible
|
|
|
|
```bash
|
|
# Vérifier que le socket existe
|
|
ls -la /var/run/beszel-agent/
|
|
|
|
# Redémarrer l'agent
|
|
docker restart beszel-agent
|
|
```
|
|
|
|
---
|
|
|
|
## Résumé emplacements
|
|
|
|
| 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 |
|
|
|
|
---
|
|
|
|
## Liens utiles
|
|
|
|
- [Beszel GitHub](https://github.com/henrygd/beszel)
|
|
- [Documentation Beszel](https://beszel.dev)
|
|
- [GPU Monitoring](https://beszel.dev/guide/gpu)
|
|
- [REST API](https://beszel.dev/guide/rest-api)
|