Initial commit
This commit is contained in:
352
DISKS_USE_CASES.md
Normal file
352
DISKS_USE_CASES.md
Normal 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
|
||||
Reference in New Issue
Block a user