Monitoreo de tareas cron con latidos
El monitoreo de tareas cron te avisa cuando una tarea programada deja de dar señales de vida. Tu proceso llama a una dirección propia de MonitoraWeb al terminar; si esa llamada no llega dentro del plazo que eliges, el monitor pasa a caído y recibes el aviso por tus canales.
Qué es el monitoreo de tareas cron y qué no es
Una web caída se nota: alguien entra y no carga. Una tarea programada que deja de correr, no. La copia de seguridad de la madrugada, el script que sincroniza el inventario o el que manda las facturas del día pueden fallar durante semanas sin que nadie lo vea, hasta el día que hace falta lo que debían haber hecho.
El monitoreo con latidos (en inglés, heartbeats) funciona al revés que el monitoreo de disponibilidad web. En vez de que nosotros pidamos una página cada cierto tiempo, es tu tarea la que nos llama a nosotros. Mientras las llamadas llegan a tiempo, todo está en orden. Cuando dejan de llegar, algo pasó: el servidor se apagó, el cron se borró en una migración, el script empezó a fallar antes de terminar o se quedó colgado.
Lo que no hace: no ejecuta tus tareas, no lee sus registros (logs), no mide cuánto tardan por dentro y no comprueba que lo que hicieron esté bien. Si tu copia de seguridad termina y llama, sabemos que terminó; no sabemos si el archivo sirve para restaurar.
Cómo un proceso envía un latido
Al crear un monitor de tipo latido, MonitoraWeb te da una dirección única con un código secreto. Tu tarea la llama al terminar, con GET o con POST. Por ejemplo, al final de un cron:
0 3 * * * /usr/local/bin/backup.sh && curl -fsS https://app.monitoraweb.com/hb/TU_CODIGO
El && hace que el latido solo salga si el script terminó bien. Si quieres avisar tú mismo de que algo falló, la misma dirección con /fail al final marca el trabajo como fallido en ese momento:
/usr/local/bin/backup.sh || curl -fsS https://app.monitoraweb.com/hb/TU_CODIGO/fail
El código es el secreto: guárdalo como cualquier otra clave. Cada monitor de latido tiene el suyo.
Plazo esperado y margen de gracia
En el monitor eliges cada cuánto debe llegar el latido y un margen de gracia, de cero segundos a siete días. Cada minuto se mira si ya pasó el último latido más el intervalo más el margen. Si pasó, el monitor queda caído de una vez y te avisamos por los canales de la lista: aquí no hay tres comprobaciones fallidas como en una web, porque lo que se vigila es un silencio.
El margen de gracia evita falsas alarmas por tareas que a veces tardan un poco más. Si tu copia de seguridad suele durar diez minutos pero un día de mucho tráfico llega a veinte, un margen de media hora te ahorra el susto.
Ejemplos de uso
Estos son ejemplos de lo que se suele vigilar, no casos de clientes:
- Copias de seguridad. El script de la madrugada llama al terminar. Si una noche no llama, lo sabes por la mañana y no dentro de seis meses.
- Sincronizaciones. Un proceso que actualiza precios o stock cada hora entre la tienda y el sistema de gestión.
- Tareas de WordPress o de Laravel. El cron del sistema que dispara las tareas programadas de la aplicación.
- Informes y envíos. El proceso que manda un correo o genera un archivo cada día.
Latidos frente al monitoreo de una web
Un monitor web contesta a la pregunta «¿responde mi página?». Un latido contesta a «¿se ejecutó mi tarea?». Una web puede estar perfecta mientras su copia de seguridad lleva un mes sin correr, y al revés. Por eso conviene tener los dos: el monitor de la web y un latido por cada tarea que importa. Si te cuesta escribir la línea del cron, el generador de expresiones cron te la arma gratis.
Límites que conviene saber
- Detectamos el silencio, no la causa. El aviso dice que el latido no llegó; por qué no llegó lo dice tu servidor.
- Un latido que llega no prueba que el trabajo saliera bien, salvo que tu script solo llame cuando todo terminó correctamente.
- Si tu servidor no puede salir a internet, el latido no llega aunque la tarea haya corrido.
- Comprobamos desde un solo punto: nuestro servidor.
Avisos y planes
El aviso sale por los canales de tu lista: correo en el plan Gratis y, en los de pago, también WhatsApp, Slack, Microsoft Teams, Discord, Telegram o un webhook firmado. Cómo y cuándo llega cada canal lo explica la página de alertas. Los límites de monitores y de intervalos de cada plan están en precios.
Preguntas frecuentes
¿Tengo que instalar algo en mi servidor?
No. Basta con que tu tarea haga una petición HTTP a su dirección al terminar, con curl, wget o la librería de tu lenguaje.
¿Qué pasa si el latido llega tarde?
Mientras llegue antes de que se cumplan el intervalo y el margen de gracia, no pasa nada. Si se cumplen sin latido, el monitor queda caído y te avisamos. Cuando vuelve a llegar, el monitor se recupera.
¿Puedo avisar de que una tarea falló aunque haya corrido?
Sí. Llama a la misma dirección terminada en /fail y el trabajo queda marcado como fallido en ese momento, sin esperar al plazo.
¿MonitoraWeb ejecuta mis tareas?
No. Tus tareas siguen corriendo en tu servidor; nosotros solo esperamos su señal.
¿Sabéis si mi copia de seguridad está bien?
No. Sabemos que el proceso terminó y llamó. Comprobar que la copia se puede restaurar es otra tarea, y conviene hacerla de vez en cuando.
¿Sirve para un cron de WordPress?
Sí, si el cron del sistema llama a la dirección después de ejecutar las tareas de WordPress. Para la web en sí, mira el monitoreo de WordPress.