Monitorización de cron

Entérese cuando una tarea programada no llegó a ejecutarse

Una copia de seguridad que deja de ejecutarse en silencio se parece exactamente a una que funciona, hasta que la necesita. Su tarea hace ping a AlertSleep al terminar; nosotros avisamos cuando ese ping no llega.

Facturación nocturna

OK
Programación Cada día a las 03:00 Europe/Madrid
Último ping hace 3 minutos · exit 0 · 48 s
Próximo vencimiento en 23 horas
Periodo de gracia 15 minutos
0 3 * * * /usr/local/bin/billing-run \
  && curl -fsS https://api.alertsleep.com/v1/ping/YOUR-TOKEN

Una línea en su crontab

Sin agente, sin biblioteca, sin reglas de firewall más allá de HTTPS normal. Si la máquina llega a internet, puede dar parte.

1

Cree un check

Describa cuándo debe ejecutarse la tarea y cuánto puede retrasarse antes de que quiera enterarse. Recibe una URL de ping única.

2

Llame a la URL cuando la tarea termine

Añada una sola llamada curl al comando que ya ejecuta. Nada más cambia en la tarea.

3

Nosotros vigilamos el silencio

AlertSleep comprueba cada minuto las tareas vencidas. Si se pasa la ventana, sale el aviso, incluida la primera vez que una tarea deja de ejecutarse.

Dos formas de decir cuándo debe ejecutarse una tarea

Elija la que encaje con su manera de pensar la tarea.

Cada N minutos

Para tareas por intervalo: vaciar una cola cada cinco minutos, sincronizar cada hora. Indique el intervalo y nada más.

Una expresión cron

Para tareas atadas al reloj o al calendario. Pegue la misma expresión que usa su crontab y el check la sigue exactamente.

Su zona horaria, no la nuestra

La programación cron se evalúa en la zona que elija, así que una tarea fijada a las 03:00 locales sigue a las 03:00 tras el cambio de hora.

Un periodo de gracia

Las tareas reales empiezan tarde y se alargan. Defina cuánto retraso es normal y solo los excesos auténticos generan un aviso.

Tres señales, cualquier cliente HTTP

GET, POST y HEAD funcionan, así que curl, wget, PowerShell o dos líneas de HTTP desde dentro de la tarea valen igual.

Éxito

La tarea terminó. Es la única señal que necesita un check; todo lo demás es opcional.

https://api.alertsleep.com/v1/ping/YOUR-TOKEN

Inicio

Llámelo al empezar y AlertSleep registra cuánto dura cada ejecución, no solo que ocurrió.

https://api.alertsleep.com/v1/ping/YOUR-TOKEN/start

Fallo

La tarea se ejecutó y supo que había fallado. Un fallo explícito avisa de inmediato en vez de esperar a que venza la programación.

https://api.alertsleep.com/v1/ping/YOUR-TOKEN/fail

Detalle opcional

Envíe un código de salida, una duración o un mensaje breve junto al ping. Un campo que no podamos leer se descarta y el latido se registra igualmente: un extra mal formado nunca le cuesta la señal.

curl -fsS -X POST \
  https://api.alertsleep.com/v1/ping/YOUR-TOKEN \
  -d exit_code=0 \
  -d duration_ms=48213 \
  -d message="1482 invoices"

Cuando el ping no llega

Los checks de cron avisan por correo y en su panel de AlertSleep.

Aviso por correo

Se envía una vez cuando el check cae, con la programación, el periodo de gracia y la hora del último ping recibido.

Notificación en la aplicación

El mismo aviso llega a su lista de notificaciones, así que un check caído de madrugada sigue visible por la mañana.

Aviso de recuperación

Cuando la tarea vuelve a dar parte, se le informa de la recuperación. Ningún aviso se repite mientras un check sigue caído.

Checks de cron en todos los planes

También en el gratuito. Sin tarjeta para averiguar si sus tareas se ejecutan de verdad.

Gratis
2
checks de cron
Basic
10
checks de cron
Professional
50
checks de cron

Preguntas frecuentes

¿Qué es la monitorización de cron?

La monitorización de cron —también llamada de latido u hombre muerto— vigila una señal que debería llegar. Su tarea programada llama a una URL al terminar; si esa llamada no llega a tiempo, recibe un aviso. Es lo contrario de la monitorización de disponibilidad, donde los que llamamos somos nosotros.

¿Por qué no basta con comprobar el código de salida en mi script?

Un código de salida solo existe si la tarea se ejecutó. Los fallos que duelen son aquellos en los que no se ejecutó nada: se borró la entrada del crontab, se reconstruyó el servidor, el contenedor nunca arrancó, el disco se llenó. Una tarea sin salida ni error es indistinguible de una sana, salvo que algo vigile su ausencia.

¿Funciona con CronJobs de Kubernetes, temporizadores de systemd o el Programador de tareas de Windows?

Sí. El check no presupone crontab: solo necesita que la tarea haga una petición HTTPS al terminar. Cualquier planificador capaz de ejecutar curl, y cualquier programa capaz de una llamada HTTP, puede dar parte.

¿Y si la tarea se ejecuta pero tarda mucho más de lo normal?

Llame al endpoint de inicio al empezar y al de éxito al terminar, y se registrará la duración de cada ejecución. El periodo de gracia decide cuánto retraso se tolera antes de dar el check por caído.

¿La URL de ping es un secreto?

Sí. El token de la URL es la única credencial de un endpoint que acepta llamadas sin autenticar, así que trátelo como una contraseña: fuera de repositorios públicos y fuera de los registros que comparta.

Entérese esta noche, no el trimestre que viene

Añada una llamada curl a su tarea programada más importante y entérese la próxima vez que no se ejecute.

Comenzar monitoreo gratis