La surveillance par battement de cœur implique l'envoi périodique d'un petit signal — comme une requête HTTP, un paquet TCP ou un ping ICMP — depuis un nœud ou un service surveillé vers un système de surveillance (ou entre les nœuds pairs d'un cluster) pour confirmer que le système est actif et réactif.
Fonctionnement
Un émetteur envoie un message de battement de cœur à un intervalle fixe, généralement toutes les 1 à 30 secondes. Le système de surveillance enregistre l'arrivée de chaque battement de cœur et compare l'horodatage par rapport à une fenêtre de délai d'attente configurée. Si un battement de cœur ne parvient pas à arriver dans cette fenêtre (souvent après plusieurs intervalles consécutifs manqués), le nœud surveillé est marqué comme DOWN et les actions automatisées se déclenchent — comme l'envoi d'une alerte, le basculement vers une sauvegarde ou le redémarrage du service.
La surveillance par battement de cœur peut être unidirectionnelle (un agent pousse les battements de cœur vers un moniteur central) ou bidirectionnelle (les nœuds pairs d'un cluster échangent des battements de cœur pour détecter les défaillances entre eux).
Exemple
Kubernetes utilise les sondes de vivacité comme mécanisme de battement de cœur : le kubelet envoie périodiquement des vérifications HTTP ou TCP à un conteneur. Si la sonde échoue un nombre défini de fois de suite, Kubernetes redémarre automatiquement le conteneur. De même, dans les clusters haute disponibilité, les nœuds exécutant Pacemaker échangent des messages de battement de cœur sur un réseau dédié ; quand un nœud cesse d'envoyer des battements de cœur, le cluster déclenche le basculement de ses services vers un pair sain.
Quand c'est important
La surveillance par battement de cœur est essentielle pour la surveillance du temps d'activité, les vérifications d'état de l'équilibreur de charge et l'automatisation du basculement de cluster. Elle permet la détection rapide des services défaillants et la récupération automatisée.
WarningRisque de cerveau divisé: Un battement de cœur manqué peut signaler soit que le nœud surveillé a planté, soit que le lien réseau transportant le battement de cœur a échoué. Le nœud peut toujours servir du trafic même si les battements de cœur sont perdus. Dans les clusters haute disponibilité en production, la surveillance par battement de cœur est toujours associée à des mécanismes de quorum et de clôture (STONITH) pour éviter que deux nœuds revendiquent simultanément le statut primaire.