Initial commit

This commit is contained in:
innotex
2026-01-16 18:40:39 +01:00
commit 9ec63a8aa2
76 changed files with 13235 additions and 0 deletions

352
DISKS_USE_CASES.md Normal file
View File

@@ -0,0 +1,352 @@
# Cas d'usage et Best Practices - Disques et Partitions
## 📌 Cas d'usage principaux
### 1. Monitoring des espaces disque
**Contexte**: Un administrateur système veut surveiller l'espace disponible
**Workflow**:
1. Se connecter à InnotexBoard
2. Cliquer sur "💾 Disques et Partitions"
3. Observer les barres de progression
4. Identifier les disques proches de saturation (rouge > 90%)
5. Agir avant que le disque ne soit plein
**Bénéfice**: Prévention de l'arrêt du système due à manque d'espace
---
### 2. Identification des goulots d'étranglement
**Contexte**: Déterminer quel disque/partition cause un problème de performance
**Workflow**:
1. Observer le taux d'utilisation de chaque partition
2. Identifier les partitions à 75-90% (zone orange)
3. Vérifier quelles applications l'utilisent
4. Planifier une augmentation de capacité
**Bénéfice**: Prévention de dégradation de performance
---
### 3. Vérification après déploiement
**Contexte**: Confirmer que les disques ont été provisionnés correctement
**Workflow**:
1. Après un déploiement ou mise en place de nouveau matériel
2. Accéder à la page Disques et Partitions
3. Vérifier que les disques sont présents et visibles
4. Confirmer que les points de montage sont corrects
5. Valider les tailles configurées
**Bénéfice**: Vérification rapide sans SSH
---
### 4. Reporting et audit
**Contexte**: Générer un rapport sur l'utilisation des disques
**Workflow**:
1. Prendre une capture d'écran de la page
2. Exporter les données (possible implémentation future)
3. Inclure dans un rapport mensuel
4. Identifier les tendances
**Bénéfice**: Documentation pour les audits de conformité
---
### 5. Diagnostic d'incident
**Contexte**: Investiguer pourquoi un service a arrêté
**Workflow**:
1. Un service a crashé
2. Ouvrir InnotexBoard
3. Vérifier si un disque est saturé (100%)
4. Confirmer que ce n'est pas la cause
5. Investiguer ailleurs
**Bénéfice**: Elimination rapide d'une cause commune
---
## ✅ Best Practices
### Pour les administrateurs
#### 1. Surveillance régulière
```
Fréquence recommandée: Quotidienne
- Vérifier les disques en orange (75-90%) le matin
- Identifier les tendances de croissance
- Prévoir les augmentations de capacité
```
#### 2. Alertes proactives
```
Seuils recommandés:
- Orange (75%): Alerter que le temps de prévoir est venu
- Rouge (90%): Activer le plan d'urgence
- 100%: Situation d'urgence critique
```
#### 3. Planification de capacité
```
Formule simple:
- Croissance mensuelle = (Utilisé mois N - Utilisé mois N-1) / Mois
- Temps avant saturation = Disponible / Croissance mensuelle
- Action si < 6 mois avant saturation
```
#### 4. Documentation
```
Pour chaque disque/partition, documenter:
- Taille provisionnée
- Raison de cette taille
- Applications principales
- Besoin estimé dans 6-12 mois
```
---
### Pour les développeurs
#### 1. Intégration avec le monitoring
```
Possible: Ajouter des webhooks
- POST /api/monitoring/alert-capacity
- Déclencher des alertes Grafana/Prometheus
- Intégrer avec les systèmes de tickets (Jira, etc)
```
#### 2. Performance
```
- Ne pas appeler l'API plus de 1 fois par minute en production
- Implémenter du caching côté serveur (5-10s)
- Utiliser WebSockets pour les mises à jour en temps réel
```
#### 3. Extension
```
Idées d'amélioration:
- Historique de l'utilisation (graphiques)
- Alertes automatiques
- Export CSV/JSON
- Alertes email/Slack
- Prédiction de saturation (ML)
```
---
### Pour les opérations
#### 1. Automatisation
```bash
# Exemple: Script pour exporter quotidiennement
#!/bin/bash
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
curl -s http://localhost:8000/api/system/disks \
-H "Authorization: Bearer $TOKEN" > backup/disks_$TIMESTAMP.json
```
#### 2. Intégration monitoring
```yaml
# Prometheus scraper (exemple future)
- job_name: 'innotex_disks'
static_configs:
- targets: ['localhost:8000']
metrics_path: '/api/system/disks'
```
#### 3. Sauvegardes intelligentes
```
- Éviter les sauvegardes sur un disque à > 85%
- Priorité des sauvegardes si < 20% disponible
- Alerter les administrateurs si dégradation rapide
```
---
## 🎯 Métriques clés à surveiller
### 1. Taux de croissance
```
Formule: (Utilisé_mois_N - Utilisé_mois_N-1) / 30 jours
Interprétation:
- < 100MB/jour: Normale
- 100-500MB/jour: À surveiller
- > 500MB/jour: Action requise
```
### 2. Ratio utilisation/disponible
```
Interprétation:
- < 50%: Sain
- 50-75%: Normal mais à surveiller
- 75-90%: Préoccupant, planifier l'augmentation
- > 90%: Critique
```
### 3. Temps avant saturation
```
Calcul: Disponible / Taux_croissance
Seuil d'alerte: < 3 mois
Priorité haute: < 2 mois
```
---
## 🚨 Gestion des incidents
### Scenario 1: Disque à 100%
```
Actions immédiates:
1. Vérifier quel processus utilise l'espace
2. Identifier les fichiers volumineux
lsof | grep -E 'DEL|SIZE'
du -sh /* | sort -rh
3. Nettoyer les fichiers non essentiels
4. Si critique: Étendre le disque (LVM)
Prévention:
- Monitoring quotidien
- Nettoyage automatique des vieux logs
- Alertes à 80%
```
### Scenario 2: Croissance anormale
```
Actions diagnostiques:
1. Accéder à la page Disques
2. Vérifier les statistiques
3. Comparer avec jour/semaine précédents
4. Identifier l'anomalie (logs, caches, données temporaires)
5. Arrêter le processus fautif
6. Nettoyer les fichiers temporaires
Exemple:
- Les logs Apache ont explosé (100GB en 1 jour)
- Solution: Rotation des logs plus fréquente
```
### Scenario 3: Nouvelle partition apparaît
```
Actions:
1. Vérifier si c'était planifié
2. Si oui: Monter correctement et ajouter à /etc/fstab
3. Si non: Investiguer (test hardware? nouveau volume?)
4. Mettre à jour la documentation
Exemple:
- Nouveau disque USB branché
- Nouveau volume cloud monté
```
---
## 📊 Cas limites et gestion
### 1. Partitions non montées
```
Comportement: Affichage du nom, pas de pourcentage
Raison: Impossible de lire l'utilisation d'une partition non montée
Solution: Monter la partition si nécessaire
```
### 2. Permissions insuffisantes
```
Comportement: La partition n'apparaît pas ou affiche 0%
Raison: Pas d'accès à psutil.disk_usage()
Solution: Vérifier les permissions du user FastAPI
```
### 3. Disques réseau lents
```
Comportement: Timeout sur lsblk (> 10s)
Raison: Disque NFS/iSCSI avec latence élevée
Solution: Augmenter le timeout ou exclure le disque
```
### 4. Disques en raid/LVM
```
Comportement: Affichage des disques logiques + physiques
Solution: Les deux sont visibles, c'est normal
```
---
## 🔍 Vérifications régulières
### Checklist hebdomadaire
```
☐ Vérifier que toutes les partitions importantes sont dans l'interface
☐ Confirmer qu'aucun disque n'est en rouge (> 90%)
☐ Vérifier que les points de montage sont corrects
☐ Identifier les disques en croissance rapide
☐ Valider les sauvegardes si nécessaire
```
### Checklist mensuelle
```
☐ Analyser la croissance de chaque partition
☐ Créer un graphique d'utilisation (historique)
☐ Comparer avec le mois précédent
☐ Mettre à jour les prévisions
☐ Planifier les augmentations nécessaires
☐ Nettoyer les données temporaires
```
### Checklist trimestrielle
```
☐ Revoir la stratégie de partitionnement
☐ Évaluer si lsblk produit la bonne information
☐ Vérifier la capacité vs les besoins estimés
☐ Mettre à jour la documentation
☐ Prévoir les changements matériels
```
---
## 💡 Tips & Tricks
### Raccourci rapide
```javascript
// Dans la console navigateur:
// Rafraîchir manuellement les données
document.querySelector('button').click() // Si bouton existe
```
### Export de données
```bash
# Script pour exporter régulièrement (cron)
0 0 * * * /usr/local/bin/export_disks.sh
# Contenu du script:
#!/bin/bash
TOKEN=$(curl -s -X POST http://localhost:8000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": "admin"}' | jq -r '.access_token')
curl -s -X GET http://localhost:8000/api/system/disks \
-H "Authorization: Bearer $TOKEN" > /var/log/disk-usage-$(date +%Y%m%d).json
```
### Alertes Slack (futur)
```python
# À implémenter
if percent_used > 90:
send_slack_alert(f"Disque {name} à {percent_used}%!")
```
---
## 📚 Ressources supplémentaires
- [Linux LVM Documentation](https://man7.org/linux/man-pages/man8/lvm.8.html)
- [Gestion des disques Linux](https://wiki.debian.org/DiskManagement)
- [Best Practices de capacité](https://www.kernel.org/doc/html/latest/admin-guide/device-mapper/device-mapper.html)
- [Monitoring avec Prometheus](https://prometheus.io/docs/guides/file-sd/)
---
**Dernière mise à jour**: 16 janvier 2026