353 lines
8.6 KiB
Markdown
353 lines
8.6 KiB
Markdown
# 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
|