Chapitre 06

KPI, alerting et recette de mise en production

Un indicateur ne sert à rien s'il ne déclenche pas une décision. Voici les indicateurs que nous suivons, leurs seuils, et les tests qui autorisent l'ouverture du service.

Lecture 11 min  ·  Prérequis : chapitre 05

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

IndicateurSourceSurveillanceCritiqueCe qu'il révèle
Voix de quorumpvecmmarge de 1quorum perduCapacité du cluster à décider
Liens corosync actifscorosync-cfgtool1 lien perdu1 seul lien restantRedondance du plan de contrôle
Latence lien 0corosync> 5 ms> 10 msRisque d'isolation intempestive
Dérive d'horlogechrony> 50 ms> 200 msDésordre Ceph et journaux inexploitables
Ressources HA en erreurha-manager12 ou plusBascule qui échoue silencieusement

Stockage Ceph

IndicateurSourceSurveillanceCritiqueCe qu'il révèle
État de santéceph -sWARN > 15 minERR immédiatSanté générale du stockage
Groupes non actifs et propresceph pg stat> 0 pendant 30 min> 0 pendant 2 hReconstruction bloquée
OSD hors serviceceph osd tree12 dans le même domainePerte imminente de redondance
Latence de validation OSDceph osd perf> 20 ms sur 15 min> 50 ms sur 15 minDisque en fin de vie ou réseau saturé
Remplissage du poolceph df70 %80 %Marge de reconstruction insuffisante
Écart de remplissage entre OSDceph osd df> 15 points> 25 pointsRépartition CRUSH déséquilibrée
Âge du dernier nettoyage approfondiceph pg dump> 14 jours> 30 joursCorruption silencieuse non détectée
Drapeaux posésceph osd statnoout > 12 hnoout > 48 hMaintenance oubliée, pas d'auto-réparation

Capacité et charge

IndicateurSourceSurveillanceCritiqueCe qu'il révèle
Marge N+1 en mémoirecalcul< 1 noeudmarge nulleLe cluster ne survit plus à une panne
Mémoire utilisée par noeudPVE85 %92 %Risque d'arrêt par manque de mémoire
Charge normalisée par coeurPVE> 0,8> 1,2Contention processeur
Temps volé (steal) des VMinvité> 5 %> 10 %Surréservation excessive
Croissance mensuelle du stockagetendancesaturation < 6 moissaturation < 3 moisDélai avant investissement

Sauvegardes et matériel

IndicateurSourceSurveillanceCritiqueCe qu'il révèle
Âge de la dernière sauvegarde réussiePBS> 26 h> 50 hPerte de données potentielle
Taux de réussite sur 7 joursPBS< 100 %< 90 %Fiabilité réelle du dispositif
Vérification PBSPBS1 échecéchec répétéSauvegarde corrompue
Remplissage du magasin PBSPBS75 %85 %Purge ou ramasse-miettes défaillant
Retard de synchronisation distantePBS> 48 h> 7 joursTroisième copie absente
Usure des SSD et NVMeSMART70 %85 %Remplacement à planifier
Secteurs réallouésSMART> 0en croissanceDisque à remplacer sans attendre
Certificats expirantsPVE< 21 jours< 7 joursInterruption d'accès prévisible
Les trois indicateurs à retenir si vous n'en gardez que trois

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.

Exemple de requête Flux pour une règle d'alerte
// â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

NiveauDéfinitionCanalDélai attendu
P1Service interrompu ou perte de données possibleAppel et message, 24 h sur 2415 minutes
P2Redondance perdue, service encore renduCourriel et messagerie d'équipeProchain jour ouvre
P3Tendance à corriger, capacité, usureRapport hebdomadaireRevue 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équenceActions
HebdomadaireRevue des alertes de la semaine, vérification des sauvegardes, contrôle de la marge N+1
MensuelMises à jour noeud par noeud avec drapeau noout, restauration test d'une machine, revue de l'usure des disques
TrimestrielTest de bascule complet, restauration depuis le site distant, revue des seuils d'alerte
AnnuelRevue de capacité sur les données agrégées, plan de renouvellement matériel, montée de version majeure
Fin du guide

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.