Comment surveiller un cron avec MoniTao

Guide pas à pas pour ne plus jamais rater un cron silencieusement défaillant.

Les tâches cron sont essentielles mais souvent oubliées. Ce guide vous montre comment les surveiller efficacement.

En quelques minutes, configurez un heartbeat qui vous alertera si votre cron ne s'exécute pas.

Pourquoi surveiller ses crons ?

Les crons peuvent échouer silencieusement pour de nombreuses raisons :

  • Le script a une erreur non gĂ©rĂ©e
  • Le serveur a Ă©tĂ© redĂ©marrĂ© sans rĂ©activer les crons
  • Un changement de permission bloque l'exĂ©cution
  • La base de donnĂ©es ou un service dĂ©pendant est indisponible

Configuration étape par étape

Suivez ces étapes pour configurer la surveillance :

Étape 1 : Créer un job heartbeat

Dans MoniTao, créez un nouveau job heartbeat avec l'intervalle correspondant à votre cron. Par exemple, 24 heures pour un cron quotidien.

Étape 2 : Modifier votre crontab

Ajoutez un appel curl à la fin de votre commande cron. Utilisez && pour que le ping ne soit envoyé qu'en cas de succès.

# Crontab original
0 2 * * * /usr/local/bin/backup.sh

# Crontab avec heartbeat MoniTao
0 2 * * * /usr/local/bin/backup.sh && curl -s -X POST \
  https://monitao.com/api/heartbeat/ping/VOTRE_TOKEN \
  -H "Authorization: Bearer VOTRE_SECRET"

Étape 3 : Gérer les erreurs

Pour une meilleure gestion, créez un script wrapper qui signale le début, le succès ou l'échec :

#!/bin/bash
# backup.sh avec gestion d'erreur

TOKEN="VOTRE_TOKEN"
SECRET="VOTRE_SECRET"
URL="https://monitao.com/api/heartbeat"

# Signal debut
curl -s -X POST "$URL/start/$TOKEN" -H "Authorization: Bearer $SECRET"

# Execution du backup
/usr/bin/mysqldump -u user -p'password' database > /backup/db.sql
RESULT=$?

# Signal succes ou echec
if [ $RESULT -eq 0 ]; then
    curl -s -X POST "$URL/ping/$TOKEN" -H "Authorization: Bearer $SECRET"
else
    curl -s -X POST "$URL/fail/$TOKEN" -H "Authorization: Bearer $SECRET"
    exit 1
fi

Configurer l'intervalle et la grâce

Adaptez la configuration Ă  votre cron :

  • Intervalle - Doit correspondre Ă  la frĂ©quence du cron (1h, 24h, etc.)
  • PĂ©riode de grâce - Temps d'attente supplĂ©mentaire avant alerte (15-60 min recommandĂ©)
  • Alertes - Email par dĂ©faut, SMS possible avec Business

Exemples concrets

  • Cron de backup base de donnĂ©es quotidien Ă  2h du matin
  • Cron de nettoyage de fichiers temporaires toutes les heures
  • Cron de synchronisation avec API tierce toutes les 15 minutes

Récapitulatif

  1. Créez un job heartbeat avec le bon intervalle
  2. Ajoutez le curl à votre cron ou créez un script wrapper
  3. Testez et vérifiez que les pings arrivent

Questions fréquentes

Mon cron prend parfois plus de temps, comment éviter les fausses alertes ?

Augmentez la période de grâce pour laisser le temps au cron de terminer.

Puis-je surveiller un cron qui tourne sur plusieurs serveurs ?

Oui, créez un job heartbeat par serveur ou un seul si un seul doit tourner.

Le heartbeat ajoute-t-il de la latence Ă  mon cron ?

Le ping HTTP prend quelques millisecondes, totalement négligeable.

Puis-je voir l'historique des exécutions ?

Oui, chaque ping est enregistré avec timestamp et durée dans le dashboard.

PrĂŞt Ă  dormir sur vos deux oreilles ?

Commencez gratuitement, sans carte bancaire.