Saltar al contenido

Monitorización de tareas cron & heartbeat que detecta los fallos silenciosos.

Una tarea cron muerta no lanza ningún error ni escribe ningún registro — te enteras cuando necesitas la copia de seguridad. Da a cada tarea una URL de ping y Uptimia abrirá un incidente en menos de un minuto desde el plazo incumplido.

Prueba gratuita de 30 días · 50 monitores heartbeat Sin tarjeta de crédito Conforme al RGPD
De fallo a incidente
60s
Canales de alertas
12
Agentes que instalar
0
Líneas que integrar
1

La copia de seguridad que no se ejecutó

Una copia de seguridad nocturna de la base de datos, programada para las 03:30. El script murió antes de poder hacer ping — nada dio error, nada quedó registrado, y la única señal fue el ping que nunca llegó.

03:30 El ping nocturno de db-backup nunca llegaEl script murió — nada hace ruido última copia: obsoleta
03:33 Se agota el margen de gracia — se abre el incidenteEl barrido cada minuto lo detecta: Slack, SMS, PagerDuty última copia: obsoleta
03:41 El responsable de guardia lo reconoce desde la alertaUn clic en el enlace firmado — sin iniciar sesión a las 4 de la madrugada · MTTA 8 min última copia: obsoleta
09:12 El propio ping de éxito lo cierraLa tarea reparada se ejecuta — prueba de la solución, no una promesa copias de seguridad: al día
3 minsilencio → alarma
Nadie se puso a buscar.09:12
Una tarea cron muerta no puede enviar su propia alarma — así que el silencio fue la alarma. El incidente encontró al equipo a las 03:33, y la solución se demostró sola: el ping de éxito lo cerró, nadie tuvo que volver a comprobar nada.
silence caught in 3 minacknowledged via signed linkclosed by the success pingcron or interval schedules + grace
¿Y sin el heartbeat? Una tarea de copia de seguridad muerta es invisible — cada noche que no se ejecuta se parece exactamente a cada noche que sí lo hizo. Te enteras el día que necesitas la restauración que no existe. sin restauración

Monitoriza tareas programadas estén donde estén

Si puede enviar una solicitud HTTP, Uptimia puede vigilarla — los pings son solo de salida, así que las tareas detrás de firewalls y NAT informan sin problema.

Crontab de Linux & systemdUna línea de curl al final de la tarea
Programador de tareas de WindowsFragmento de PowerShell incluido
Kubernetes & DockerCronJobs y contenedores por igual
GitHub Actions & JenkinsFragmentos de CI incluidos
1 URL de ping por tarea silencio pasado el margen de gracia = alarma
Sidekiq, Celery & serverlessTambién workers de colas y funciones
wp-cron & HerokuLas plataformas gestionadas también hacen ping
Con firewall, NAT & IoTSolo salida — sin puertos abiertos
Las tareas al otro lado son las que no te puedes permitir perder: copias de seguridad de bases de datos, procesos de facturación, ETL y sincronizaciones de datos, informes, renovaciones de certificados, workers de colas y resúmenes por correo. una línea de curl

Horarios, señales y el registro de pings

Alertas

Avisado en menos de un minuto

Cada monitor se comprueba cada 60 segundos. Un plazo incumplido más allá de tu margen de gracia abre un único incidente y se envían las alertas — sin tormentas de repetición, y solo se cierra cuando llega un ping real.

  • Cadenas de escalado y enlaces de reconocimiento con un clic — sin necesidad de iniciar sesión
  • Aviso de recuperación cuando la tarea vuelve
  • Ventanas de mantenimiento y pausa — sin falsas alertas durante los despliegues
Avisa a la siguiente persona hasta que alguien lo reconozca
Missed ping03:32:00
db-backup · nightly — expected 03:30 + 2 min grace. The 60-second sweep caught the silence; one incident, no repeat storm.
SlackEmailSMS+ PagerDuty…
1
Se avisa al primer responsable de guardia
03:32:00 · Slack, SMS y correo electrónico
sin reconocer
2
El segundo responsable de guardia lo reconoce
03:41 · enlace firmado, sin iniciar sesión
MTTA 9 m
Recuperado — ping de éxito
09:12:04 · aviso de recuperación enviado
cerrado
¿Despliegue esta noche? Las ventanas de mantenimiento y la pausa evitan que un silencio planeado avise a nadie. sin alerta
Horarios

Tu expresión cron, tu zona horaria

Pega la línea que ya tienes en tu crontab, o establece un intervalo simple de entre 30 segundos y 90 días. Los plazos se ajustan con el horario de verano, así que una tarea de las 03:30 sigue siendo una tarea de las 03:30 en octubre.

  • Cualquier expresión cron de cinco campos — rangos, pasos, nombres, macros al estilo @daily
  • Un margen de gracia que defines por tarea — una que a veces se alarga no avisará a nadie
  • Los horarios no válidos o imposibles se rechazan al guardar
Evita que el trabajo planeado avise a nadie
CRONCron de cinco campos*/15 * * * 1-5siguiente 09:45
INTIntervalo simplede 30 s a 90 díassiguiente 09:30:30
@@daily macro@hourly · @weekly tambiénsiguiente 00:00
analizado en
tu zona horaria
Deadline armed09:45:00
Uptimia now expects a ping by 09:45 + 2 min grace — deadlines follow your account timezone, DST shifts included.
grace 2 minDST safe60 s sweep
¿Horario imposible? Un cron como 0 0 31 2 * nunca puede dispararse — se rechaza al guardar, no se ignora en silencio. rechazado
Registro de pings

Cada ejecución en el registro de pings

Abre un monitor y comprueba cuándo se ejecutó la tarea por última vez, si se ha ido retrasando semana a semana, y cuánto duró cada ejecución — sin tener que entrar por SSH en la máquina.

  • Franja de pulso de 12 horas y un gráfico de pings por hora frente a la frecuencia esperada
  • Duración de la ejecución en cada ping cuando la tarea envía una señal de inicio
  • Los pings tardíos se marcan en el registro — nunca avisan
Vigila la máquina en la que se ejecuta la tarea
LOGweb-cron · cada 15 min
una fila por ping · el más reciente primero
09:45:03 · +3 s · 212.47.163.9run 2.1 s
09:30:14 · +14 s · curl/8.5.0tarde · registrado
franja de las 09:15 — silencio pasado el margen de graciaperdido
09:00:02 · +2 s · 212.47.163.9run 2.0 s
Missed slots are synthesized where the silence sat — the log shows the gap itself, not just the pings around it.
Franja de pulso de 12 horas
Pings por hora frente a lo esperado
se esperaban 4 / hora — a las 09:00 se obtuvieron 3
Duración de la ejecución — inicio → éxito
start 09:45:01 · success 09:45:03 → run 2.1 s
¿Tarde pero vivo? Un ping que supera tu umbral de retraso se marca en el registro — marcado, nunca avisa. solo registrado
Señales

Detecta cuelgues y caídas, no solo silencio

Tres señales cubren todas las formas en que una tarea puede fallar. El éxito reinicia la cuenta atrás; el inicio activa un límite de duración, así que una tarea colgada avisa aunque nunca termine; el fallo avisa de inmediato.

  • /start — duración de la ejecución en el registro, más detección de duración máxima
  • /fail — incidente inmediato, sin margen de gracia
  • Funciona desde cualquier cliente HTTP — curl, wget, PowerShell o tu propio código
Comprueba la API que llama la tarea, paso a paso
/startLa ejecución ha comenzado03:30:01 · límite de duración activadodetecta cuelgues
successSalida limpiaURL de ping simple · GET o POSTreinicia la cuenta atrás
/failSalida distinta de cerosin margen de graciaavisa ya
3modos de
fallo
Hung job caught03:50:01
/start arrived — no success within the 20-minute cap. The job never exited, and you're paged anyway.
hang → capcrash → /failsilence → missed
Una línea de curl — la URL de ping es todo lo que la tarea necesita alcanzar. Sin agente, sin biblioteca, nada que instalar. curl -fsS

Cómo funciona la monitorización heartbeat

Una URL por tarea — sin agente, sin biblioteca.

Paso 120 segundos

Crea un monitor

Da nombre a la tarea y define su horario — intervalo o cron. Al guardar se genera una URL de ping privada.

Nombre del monitor
db-backup · nightly
Horario
IntervaloExpresión cron
30 3 * * *
Todos los días a las 03:30 · zona horaria de la cuenta
Margen de gracia
2 min
CancelarCrear monitor →
Paso 210 segundos

Añade una línea a la tarea

Añade un curl, o copia un fragmento ya preparado — Crontab, Bash, PowerShell, GitHub Actions o PHP. El monitor se activa con el primer ping.

crontab -e
30 3 * * * /usr/local/bin/db-backup.sh \
  && curl -fsS -m 10 --retry 3 \
     https://uptimia.com/p/hb_9f2…c41 >/dev/null
# el primer ping real activa el monitor:
 ping recibido — db-backup · nightly está activado
Paso 3automático

Recibe una alerta cuando enmudezca

Plazo incumplido más margen de gracia = un incidente. Tu equipo recibe una alerta en menos de un minuto, por los canales que ya usáis.

#ops-alerts
Uptimia 03:33
⚠ Ping perdido — db-backup · nightly
se esperaba a las 03:30grace 2 minúltimo ping hace 24 h
También enviado a EmailSMSPagerDuty

Añade una línea a la tarea.Entérate la noche en que deje de funcionar.

Cada tarea, cada ping, cada canal de alertas — gratis durante 30 días, y nada de eso es un complemento de pago.

Empieza tu prueba gratuita de 30 días
30 días gratis sin tarjeta de crédito cancela cuando quieras

También incluido

API REST completa

Crea, edita, pausa y elimina heartbeats desde tu pipeline — además de un endpoint de vista previa de cron que valida las expresiones antes de publicarlas.

POST /api/v2/heartbeat 201 · ping_url: https://uptimia.com/p/hb_3d7…b52

Fragmentos con tu token ya incluido

Crontab, Bash, PowerShell, GitHub Actions y PHP.

CrontabBashPowerShellActionsPHP

Restablecimiento del token con un clic

La URL antigua muere en el momento en que la regeneras.

hb_9f2…c41hb_e81…a07

Límites de frecuencia adaptados a NAT

Se cuentan por monitor, no por IP — las flotas de workers son bienvenidas.

300 pings / 10 min
por monitor

Pings de prueba

Dispara uno desde el panel para verlo llegar al registro.

manual · registrado · nunca activa

Todos los tipos de monitor en una sola cuenta

Los mismos grupos, la misma lista de contactos y los mismos roles que cualquier otro tipo de monitor.

db-backup · nightlyHEARTBEAT www.caldmont.comUPTIME api.caldmont.comSSL

Dónde llegan tus alertas

Una copia de seguridad perdida llega a las mismas personas, por los mismos canales, que un sitio caído.

Guardia y escalado
Directo

12 canales, una lista de contactos — configúrala una vez, todos los tipos de monitor la usan.

Explora el directorio completo de integraciones
03:33 · incidente abierto — ping perdido · db-backup · nightly
#ops-alertsSlack
⚠ Missed ping — db-backup · nightly
se esperaba a las 03:30grace 2 minReconocer ↩
+371 ··· 4082SMS
Uptimia: PING PERDIDO db-backup · nightly. Esperado 03:30 +2m de gracia. Último ping hace 24h.
Bandeja de entradaEmail
⚠ Ping perdido — db-backup · nightly
Esperado a las 03:30 (+2 min de gracia) · último ping ayer a las 03:30:07 · reconoce con un clic…
ProductionPagerDuty
TRIGGEREDPing perdido — db-backup · nightly
asignado al responsable de guardia · vía integración con Uptimia

¿Qué es la monitorización de tareas cron & heartbeat?

La monitorización de tareas cron — también llamada monitorización heartbeat — comprueba que las tareas programadas realmente se ejecutan. En vez de que Uptimia sondee tu servidor, cada tarea envía una breve solicitud HTTP ("ping") a su propia URL única cuando se ejecuta. Si el ping no llega dentro del plazo más el margen de gracia, Uptimia abre un incidente y te avisa.

De fuera hacia dentro

Monitorización de disponibilidad

Uptimia
Más de 171 sondas
comprobación HTTP · cada 30 s
Tu sitio web
responde a las solicitudes

Funciona cuando hay algo que preguntar. Los sitios web y las APIs responden; una tarea cron no.

De dentro hacia fuera

Monitorización heartbeat

Tu tarea cron
incluso detrás de un firewall
ping · en cada ejecución
Uptimia
lo espera según lo programado

sin ping antes de las 03:32 → se abre el incidente · un ping /fail avisa al instante

También conocido como

Un interruptor de hombre muerto para cron

Cada monitor heartbeat de Uptimia es uno — horarios que entienden cron, un margen de gracia y alertas allí donde trabaja tu equipo.

Los pings siguen llegando — el interruptor permanece cerrado. Todo tranquilo.
Los pings se detienen — el interruptor se libera. Se abre el incidente, se envían las alertas.

Preguntas frecuentes sobre monitorización heartbeat

01¿Qué tiene que hacer exactamente mi tarea?+
Solicitar su URL de ping una vez por ejecución — con curl -fsS -m 10 --retry 3 https://uptimia.com/p/hb_… al final de la línea del crontab es suficiente. GET, POST y HEAD funcionan todos. El monitor permanece inactivo hasta su primer ping real, así que no puede avisar mientras lo estás configurando.
02¿Cuándo se dispara exactamente una alerta?+
Cuando pasa la hora esperada más el margen de gracia sin que llegue un ping. Los monitores se comprueban cada minuto, así que la detección añade como máximo 60 segundos. Un ping /fail avisa de inmediato, y nada vuelve a avisar mientras un incidente está abierto.
03Mi tarea se cuelga en vez de fallar — ¿lo detectaréis?+
Sí — haz ping a /start cuando comience la ejecución y define una duración máxima. Si no llega ningún éxito dentro de ese límite, se abre un incidente. También obtienes la duración de cada ejecución en el registro.
04¿Por qué no se ejecutó mi tarea cron?+
Los sospechosos habituales: el daemon de cron no se está ejecutando, el PATH o el entorno de la tarea difiere del de tu shell, cambiaron los permisos, o el horario está mal. La monitorización no arregla la causa — se asegura de que te enteres en menos de un minuto, y el registro de pings muestra exactamente cuándo dejaron de ejecutarse las tareas.
05¿Puedo monitorizar CronJobs de Kubernetes, GitHub Actions o tareas de Windows?+
Sí. Cualquier cosa que pueda enviar una solicitud HTTP puede hacer ping — añade un paso de curl a un CronJob o a un flujo de trabajo, o usa el fragmento de PowerShell incluido para el Programador de tareas de Windows. Los entornos con firewall y NAT también funcionan, porque los pings son solo de salida.
06¿Qué guardáis de cada ping?+
Señal, marca de tiempo, desviación respecto al horario, IP de origen, user agent y duración de la ejecución. Los cuerpos de las solicitudes no se guardan — no envíes secretos ni registros.
07Hacemos ping desde cientos de workers detrás de una sola NAT — ¿es un problema?+
No. Los límites de frecuencia se cuentan por monitor — 300 pings cada 10 minutos — no por IP de origen, así que las direcciones de salida compartidas y las flotas de workers no chocan entre sí.
08¿En qué zona horaria se ejecutan los horarios cron?+
En la zona horaria de tu cuenta, con soporte de horario de verano. Hoy no existe una zona horaria por monitor; los horarios de intervalo evitan la cuestión.
09¿Puedo gestionar los heartbeats sin la interfaz?+
Sí — la API REST crea, edita, pausa y elimina monitores, regenera tokens, envía pings de prueba y previsualiza expresiones cron (validez más las próximas tres ejecuciones).
10¿Puede una vista previa de un enlace hacer que una tarea muerta parezca viva por error?+
No. Los desplegados de Slack y Teams, los SafeLinks de Outlook, los reanálisis de Mimecast y Proofpoint y otros bots de vista previa se reconocen por su user agent: el toque queda registrado en el registro de pings para que lo veas, pero nunca activa un monitor ni adelanta el plazo. Solo un cliente real — curl, wget, PowerShell, tu propio código — cuenta como una ejecución.
11¿Es la monitorización heartbeat un complemento de pago?+
No. Todos los planes de pago incluyen la monitorización heartbeat junto con la de disponibilidad, SSL, transacciones, DNS y servidores — nunca como complemento de pago. Los planes solo difieren en cuántos monitores heartbeat incluyen. El plan gratuito no incluye heartbeats; la prueba gratuita de 30 días sí (hasta 50 monitores), sin necesidad de tarjeta de crédito.

Tu próxima tarea perdida debería avisarte.

Una línea al final de una tarea la pone bajo vigilancia — junto a tu monitorización de disponibilidad, SSL y servidores.

Prueba gratuita de 30 días 50 monitores heartbeat incluidos Sin tarjeta de crédito Conforme al RGPD
La monitorización heartbeat está incluida en todos los planes de pago, junto a cualquier otro tipo de monitor.