Tengo un script de python (o ruby, realmente no importa) en un servidor que debe ser confiable y ejecutarse todo el tiempo. Y si sucede algo y se bloquea o se congela , necesito saberlo de inmediato. Anteriormente, estaba pensando en otro "script", como un trabajo cron que lo verificaría cada minuto por medio de Linux, ya sea que esté o no en la lista de procesos activos. Sin embargo, ahora pienso que incluso si es la lista de los procesos activos, todavía podría estar congelado (aún no se ha bloqueado, pero está a punto).
¿No es así? Si es así, estoy pensando en hacer que guarde algunos datos de "latidos del corazón" en un archivo cada minuto, porque es una forma más confiable de saber si está activo o no Y si está congelado o no, porque si está congelado puede ' t escribe en un archivo pero aún puede estar en la memoria.
Sus sugerencias, ¿debería ir con eso? ¿O simplemente comprobando si su proceso en la memoria (en la lista de procesos activos) es suficiente?
Si hay malas consecuencias cuando el script no se está ejecutando (si no las hubiera, probablemente no le importaría, ¿verdad?), podría ser más confiable verificar los distintos síntomas de esas consecuencias.
Por ejemplo, si el script es un servidor web, haga que un servicio de monitoreo le haga solicitudes y le notifique cada vez que falle.
Si las malas consecuencias se pueden observar de forma remota o incluso fuera del sitio, haga que el monitoreo sea remoto o, si es posible, fuera del sitio desde la máquina que ejecuta su script. ¿Por qué? Si las consecuencias ocurren porque su secuencia de comandos dejó de ejecutarse porque la máquina que la ejecuta murió... no se le notificaría si la tarea de esa misma máquina fuera notificarle. Si se trata de una máquina diferente, se le informará de la situación. A menos que el centro de datos se queme. Luego, su servicio de monitoreo debe estar en un centro de datos diferente para que pueda recibir una notificación.
Hay ofertas de servicios de monitoreo gratuitas y de pago para servidores de acceso público, por ejemplo, Uptime Robot para servidores web, en caso de que no desee desarrollar y alojar el monitoreo usted mismo.