Saltar al contenido

Heartbeat

Monitorización de cron y trabajos en segundo plano

Al revés: tu trabajo nos llama.

Para qué sirve

Todo lo demás aquí va y busca. Este espera. Tu copia de seguridad, tu importación nocturna, tu trabajador de cola llama a una URL cuando termina, y alertamos cuando no llega una llamada.

Es la única manera de monitorizar algo sin dirección para comprobar. Un trabajo de copia de seguridad que dejó de ejecutarse hace tres semanas parece exactamente igual que uno que funcionó perfectamente, desde fuera, hasta el día en que alguien necesita la copia.

Lo que puedes configurar

Todo lo siguiente está en el formulario cuando añades uno, en todos los planes.

Con qué frecuencia se ejecuta
No con qué frecuencia miramos: con qué frecuencia debería llamar tu trabajo. Una copia de seguridad semanal es algo común, así que este llega hasta un mes donde los demás se detienen en un día.
Retraso permitido
Cuántos minutos de retraso puede tener la llamada. Un trabajo que se ejecuta cada hora y tarda hasta veinte minutos puede permitirse treinta. En blanco es una décima parte del período.
Ping URL
Generado cuando creas el monitor y mostrado una vez. Llámalo desde el final de tu trabajo. Puede regenerarse, lo que retira el anterior.
Empieza a vigilar uno Cinco monitores gratis, mientras los uses.

Preguntas

¿Es esto lo mismo que un interruptor de hombre muerto?

Es exactamente eso, aplicado a la monitorización de cron. Todo lo demás en este sitio va y busca algo. Este espera a que se le informe y alerta en el silencio, que es la única manera de vigilar un trabajo que no tiene dirección para comprobar ni página para leer.

¿Cuánto retraso puede tener mi trabajo antes de que alertéis?

Tan tarde como permitas, en minutos. Un trabajo que se ejecuta cada hora y tarda entre uno y veinte minutos puede permitirse treinta, así que se espera una llamada entre sesenta y noventa minutos después de la última. En blanco es una décima parte del período en el que se ejecuta, y nunca menos de un minuto: dos minutos de retraso no significan nada para una copia de seguridad nocturna y lo significan todo para un trabajo que se ejecuta cada cinco. El límite está ahí porque un cron que se dispara unos segundos antes o después del minuto es normal y nunca debe abrir un incidente.

¿Cómo lo llamo desde un cron o un script de shell?

Obtén la URL al final del trabajo, con curl o wget o cualquier otra herramienta que hable HTTP. Se aceptan GET, POST y HEAD, porque la mitad del mundo usa uno y la otra mitad otro, y la respuesta es un 204 vacío para que un trabajo nocturno no envíe una página HTML al operador.

¿Debería llamarlo al principio o al final?

Al final, después de que el trabajo haya tenido éxito y no antes de que empiece. Una llamada al principio del script dice que la máquina se despertó, lo cual rara vez es lo que falla. Ponlo en la última línea, detrás de cualquier comprobación de código de salida que ya tenga el script, y el silencio entonces significa que el trabajo falló en lugar de que el host esté caído.

¿Qué pasa si se filtra la URL?

La URL es la credencial, por eso tiene 256 bits de aleatoriedad y por eso se te muestra una vez. Cualquiera que la tenga puede reportar tu trabajo como saludable, lo cual es el fallo que merece preocupación en lugar de que alguien lea algo. Regenerarla hace que la anterior deje de funcionar inmediatamente.

¿Puede un trabajo que se ejecuta semanalmente usar esto?

Sí, y es una de las mejores razones para hacerlo. Este intervalo llega hasta un mes donde los otros tipos de comprobación se detienen en un día, porque una copia de seguridad semanal es algo común y una copia que dejó de ejecutarse silenciosamente hace tres semanas parece idéntica a una que funcionó perfectamente, hasta el día en que alguien la necesita.

¿Por qué no hacer que el trabajo me envíe un correo cuando falla?

Porque el fallo del que necesitas enterarte es el que ocurre cuando el trabajo no se ejecuta en absoluto, y un trabajo que no se ejecutó no envía correo. Eso cubre un fallo dentro del script, una máquina que se reinició, una entrada de cron que alguien comentó, un contenedor que nunca se inició y una cola que dejó de vaciarse. Detectar errores en el trabajo sigue siendo útil; es un fallo diferente al silencio.