01Un indicateur, une question, une décision
La dérive habituelle consiste à alerter sur tout ce qui est mesurable. Au bout de trois mois, plus personne ne lit les notifications, et l'alerte importante passe inaperçue au milieu du bruit.
Nous appliquons une règle simple : toute alerte doit avoir un destinataire, un délai de traitement et une action documentée. Si l'une des trois manque, l'indicateur reste sur un tableau de bord mais ne déclenche pas de notification.
02Le tableau des indicateurs et de leurs seuils
Cluster et quorum
| Indicateur | Source | Surveillance | Critique | Ce qu'il révèle |
|---|---|---|---|---|
| Voix de quorum | pvecm | marge de 1 | quorum perdu | Capacité du cluster à décider |
| Liens corosync actifs | corosync-cfgtool | 1 lien perdu | 1 seul lien restant | Redondance du plan de contrôle |
| Latence lien 0 | corosync | > 5 ms | > 10 ms | Risque d'isolation intempestive |
| Dérive d'horloge | chrony | > 50 ms | > 200 ms | Désordre Ceph et journaux inexploitables |
| Ressources HA en erreur | ha-manager | 1 | 2 ou plus | Bascule qui échoue silencieusement |
Stockage Ceph
| Indicateur | Source | Surveillance | Critique | Ce qu'il révèle |
|---|---|---|---|---|
| État de santé | ceph -s | WARN > 15 min | ERR immédiat | Santé générale du stockage |
| Groupes non actifs et propres | ceph pg stat | > 0 pendant 30 min | > 0 pendant 2 h | Reconstruction bloquée |
| OSD hors service | ceph osd tree | 1 | 2 dans le même domaine | Perte imminente de redondance |
| Latence de validation OSD | ceph osd perf | > 20 ms sur 15 min | > 50 ms sur 15 min | Disque en fin de vie ou réseau saturé |
| Remplissage du pool | ceph df | 70 % | 80 % | Marge de reconstruction insuffisante |
| Écart de remplissage entre OSD | ceph osd df | > 15 points | > 25 points | Répartition CRUSH déséquilibrée |
| Âge du dernier nettoyage approfondi | ceph pg dump | > 14 jours | > 30 jours | Corruption silencieuse non détectée |
| Drapeaux posés | ceph osd stat | noout > 12 h | noout > 48 h | Maintenance oubliée, pas d'auto-réparation |
Capacité et charge
| Indicateur | Source | Surveillance | Critique | Ce qu'il révèle |
|---|---|---|---|---|
| Marge N+1 en mémoire | calcul | < 1 noeud | marge nulle | Le cluster ne survit plus à une panne |
| Mémoire utilisée par noeud | PVE | 85 % | 92 % | Risque d'arrêt par manque de mémoire |
| Charge normalisée par coeur | PVE | > 0,8 | > 1,2 | Contention processeur |
| Temps volé (steal) des VM | invité | > 5 % | > 10 % | Surréservation excessive |
| Croissance mensuelle du stockage | tendance | saturation < 6 mois | saturation < 3 mois | Délai avant investissement |
Sauvegardes et matériel
| Indicateur | Source | Surveillance | Critique | Ce qu'il révèle |
|---|---|---|---|---|
| Âge de la dernière sauvegarde réussie | PBS | > 26 h | > 50 h | Perte de données potentielle |
| Taux de réussite sur 7 jours | PBS | < 100 % | < 90 % | Fiabilité réelle du dispositif |
| Vérification PBS | PBS | 1 échec | échec répété | Sauvegarde corrompue |
| Remplissage du magasin PBS | PBS | 75 % | 85 % | Purge ou ramasse-miettes défaillant |
| Retard de synchronisation distante | PBS | > 48 h | > 7 jours | Troisième copie absente |
| Usure des SSD et NVMe | SMART | 70 % | 85 % | Remplacement à planifier |
| Secteurs réalloués | SMART | > 0 | en croissance | Disque à remplacer sans attendre |
| Certificats expirants | PVE | < 21 jours | < 7 jours | Interruption d'accès prévisible |
La marge N+1, l'âge de la dernière sauvegarde vérifiée, et le remplissage Ceph. Ce sont les seuls dont la dégradation transforme un incident ordinaire en panne longue.
03Construire l'alerting dans Grafana
L'alerting unifié de Grafana repose sur quatre briques : les règles, les points de contact, les politiques de notification et les périodes de silence.
// âge de la dernière sauvegarde réussie, en heures
from(bucket: "proxmox")
|> range(start: -72h)
|> filter(fn: (r) => r._measurement == "pbs_backup" and r._field == "success")
|> filter(fn: (r) => r._value == 1)
|> last()
|> map(fn: (r) => ({r with _value: (float(v: uint(v: now())) -
float(v: uint(v: r._time))) / 3600000000000.0}))
Quelques réglages qui changent tout au quotidien.
- Durée avant déclenchement : une latence Ceph au-delà du seuil pendant quinze minutes est un signal, pendant trente secondes c'est un nettoyage en cours. Sans cette durée, l'alerting est inexploitable.
- Regroupement : grouper par cluster et par gravité évite de recevoir quarante messages quand un noeud tombe.
- Périodes de silence : déclarez les fenêtres de maintenance à l'avance. Une équipe qui prend l'habitude de couper les alertes à la main finit par oublier de les réactiver.
- Alerte témoin : une règle qui se déclenche toujours et envoie un message quotidien. Si ce message n'arrive pas, c'est la chaîne d'alerte elle-même qui est en panne. C'est la seule façon de détecter un silence trompeur.
04Routage par gravité et astreinte
| Niveau | Définition | Canal | Délai attendu |
|---|---|---|---|
| P1 | Service interrompu ou perte de données possible | Appel et message, 24 h sur 24 | 15 minutes |
| P2 | Redondance perdue, service encore rendu | Courriel et messagerie d'équipe | Prochain jour ouvre |
| P3 | Tendance à corriger, capacité, usure | Rapport hebdomadaire | Revue hebdomadaire |
Un cluster en bonne santé génère zéro P1 et zéro P2 par semaine. Si ce n'est pas le cas, soit la plateforme a un problème de fond, soit les seuils sont mal calibrés. Les deux se corrigent, mais pas de la même façon.
05La recette de mise en production
Aucun service n'est ouvert avant que ces tests soient passés, chronométrés et consignés. C'est aussi ce document que nous produisons à l'issue d'un audit.
Tests de résilience
- Coupure brutale d'un noeud, alimentation débranchée. Les machines sous HA doivent redémarrer ailleurs en moins de trois minutes, sans perte de données.
- Retrait d'un OSD en pleine activité. Le rééquilibrage doit se dérouler sans dégradation perceptible du service.
- Perte d'un lien corosync. Le cluster doit basculer sur le second lien sans aucune isolation de noeud.
- Perte d'un commutateur complet, si l'architecture le prévoit.
- Retour du noeud après réparation, et vérification du retour à HEALTH_OK sans intervention manuelle.
Tests de restauration
- Restauration complète d'une machine virtuelle sur un autre noeud, durée mesurée. Ce chiffre devient l'engagement de rétablissement communiqué.
- Restauration d'un fichier unique.
- Restauration depuis la copie distante, et non depuis le PBS principal.
Tests de performance
- Mesure de référence avec fio depuis une machine virtuelle : lecture et écriture aléatoires en 4 Ko, séquentiel en 1 Mo, latence au 99e centile.
- Ces valeurs sont conservées. Elles servent de point de comparaison lors de la prochaine plainte sur les performances, six mois plus tard.
Tests de la chaîne d'alerte
- Déclenchement volontaire d'une alerte de chaque niveau, et vérification de la réception sur chaque canal, y compris en dehors des heures ouvrées.
- Vérification que la personne d'astreinte sait quoi faire à réception : chaque alerte renvoie à une procédure écrite.
Documentation livrée
- Plan d'adressage et schéma d'architecture à jour.
- Secrets dans un coffre, avec une procédure d'accès en cas d'indisponibilité du responsable.
- Procédures d'exploitation : ajout d'un noeud, remplacement d'un disque, mise à jour du cluster, restauration.
- Registre des seuils d'alerte et de leur justification.
06Rythme d'exploitation
| Fréquence | Actions |
|---|---|
| Hebdomadaire | Revue des alertes de la semaine, vérification des sauvegardes, contrôle de la marge N+1 |
| Mensuel | Mises à jour noeud par noeud avec drapeau noout, restauration test d'une machine, revue de l'usure des disques |
| Trimestriel | Test de bascule complet, restauration depuis le site distant, revue des seuils d'alerte |
| Annuel | Revue de capacité sur les données agrégées, plan de renouvellement matériel, montée de version majeure |
Une plateforme correctement construite se remarque à une chose : il ne s'y passe presque rien. Les indicateurs restent verts, les alertes sont rares, et les opérations de maintenance se font en journée sans interruption de service. C'est l'objectif, et il est atteignable.
Un cluster a batir, a auditer ou a reprendre en main
Nous concevons, deployons et exploitons des clusters Proxmox VE et Ceph en production pour des PME, des structures reglementees et des collectivites. Nous formons aussi vos equipes, notamment dans le cadre des migrations depuis VMware.