Aller au contenu

Signal de vie (surveillance par absence)

Signal de vie (en anglais heartbeat, ou dead man's switch) : message qu'une tâche envoie à un service de surveillance à chaque exécution réussie ; c'est l'absence de signal au-delà d'un délai qui déclenche l'alerte.

Il couvre ce qu'une notification d'échec (OnFailure=) ne voit pas : minuteur désactivé ou supprimé, machine éteinte, tâche bloquée, dispositif de notification lui-même en panne. Avec systemd, une ligne suffit dans le service : ExecStartPost=-/usr/bin/curl -fsS -m 10 --retry 3 https://<surveillance>/ping/<identifiant>, exécutée seulement si ExecStart= a réussi ; le tiret initial empêche une panne de la surveillance de faire échouer la tâche. Healthchecks et Uptime Kuma (moniteurs push) le font, ou une métrique « horodatage du dernier succès » avec une alerte quand time() - dernier_succes dépasse 26 heures.

Deux règles : héberger la surveillance hors de la machine surveillée, idéalement dans une autre zone, et garder une marge (26 heures pour une tâche quotidienne, pas 24) contre les fausses alertes. Le même principe sert à vérifier une chaîne de journaux : un message logger -t battement toutes les cinq minutes doit arriver sur le collecteur.

Dans les cours

Voir aussi