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
- Créez un job heartbeat avec le bon intervalle
- Ajoutez le curl à votre cron ou créez un script wrapper
- 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.
Liens utiles
PrĂŞt Ă dormir sur vos deux oreilles ?
Commencez gratuitement, sans carte bancaire.