Estoy tratando de iniciar un programa (Resque), pero toma un poco de tiempo antes de que se escriba un archivo pid. Por lo tanto, creo que Monit cree que el programa no se ha iniciado e inicia uno o dos programas más antes de que se escriba el archivo de solicitud del primero.
¿Cómo puedo retrasar el tiempo que Monit verifica nuevamente, solo para este proceso? ¿O debería resolver esto de otra manera?
Respuestas:
¿Cómo puedo retrasar el tiempo que Monit verifica nuevamente, solo para este proceso?
Lo que está tratando de lograr podría hacerse a través de la función " TIEMPO DE ENCUESTA DE SERVICIO " de monit
La documentación de Monit dice
Uno de los métodos para personalizar la encuesta de servicio es
CADA [número] CICLOS
Ejemplo:
¿O debería resolver esto de otra manera?
También hice un intento inicial de monitorear trabajos de resque con monit porque monit es un demonio muy liviano pero finalmente se estableció con DIOS. Lo sé, sé que DIOS necesita más recursos en comparación con monit, pero en caso de resque, encontramos que es una buena combinación.
fuente
Puede verificar un servicio específico en un intervalo diferente al predeterminado ...
Ver TIEMPO DE ENCUESTA DE SERVICIO en la documentación de Monit.
Un ejemplo para su programa Resque sería verificar un número diferente de ciclos:
o de la sección de ejemplos:
o puede aprovechar las comprobaciones de estilo cron.
o si experimenta un inicio lento, puede extender el tiempo de espera en el comando de inicio del servicio:
fuente
with timeout 90 seconds
Era exactamente lo que quería. Gracias.También puede verificar si algo ha fallado X veces seguidas:
O para X veces dentro de las encuestas Y:
O ambos:
( desde aquí )
fuente
A un miembro de mi equipo se le ocurrió una solución bastante inteligente que permite que monit verifique con frecuencia (cada minuto) , pero una vez que haya intentado reiniciar el servicio (que demora ~ 10 minutos) esperará un período de gracia específico antes de intentar comenzar de nuevo.
Esto evita esperar demasiado entre verificaciones, lo que combinado con un inicio lento es un impacto mucho mayor para los clientes. Funciona mediante el uso de un script intermedio que actúa como indicador para indicar que monit ya está tomando medidas desde el último error.
Si Bamboo (aplicación web de inicio lento) está inactivo durante 3 minutos seguidos, reinicie, PERO solo si aún no se está ejecutando un script de reinicio.
El script que se llama tiene una suspensión especificada que espera MÁS Y luego la hora de inicio más lenta para el servicio (en nuestro caso esperamos terminar en ~ 10, por lo que dormimos durante 15)
fuente
La versión actual de Monit (5.16) admite un tiempo de espera para los scripts de inicio con la sintaxis:
Los documentos indican:
Que es lo que hará el valor de "tiempo de espera".
fuente
timeout
debería aplicarse tanto a los inicios como a los reinicios. Según tengo entendido, se demora antes de que Monit compruebe que: a) se está ejecutando, b) se crea el archivo PID esperado yc) se está ejecutando un proceso con el PID esperado. Tuve algunos problemas para que funcione cuando la aplicación especificada era solo un script que bifurcaba el proceso real y luego regresaba sin saber qué estaba sucediendo con el proceso. Conseguir que funcione en este caso fue un dolor.START DELAY
.