En uno de los servidores que manejamos en la empresa el servidor de aplicaciones (Tomcat) por algún motivo se cae cada cierto tiempo y esto hace que los clientes no puedan acceder a las aplicaciones.
Normalmente para que todo este bien y los clientes no tengan problemas al acceder a las apps en el servidor tenían que estar 18 procesos del Tomcat activos, esto significaba que todo estaba corriendo perfecto, pero si solo habían 17 procesos o menos significaba que uno de los servicios de Tomcat se había caído y daba problemas.
Para que esto no sucediera mas, lo que hicimos fue crearnos un sh que cuenta la cantidad de procesos del Tomcat, si son 18 o mas significa que todo esta bien, en caso de que sea 17 o menos reiniciamos el Tomcat para que vuelva a levantar todos los servicios.
Source del ReinicioTomcat.sh:
#!/bin/bash
Fecha=`date`
CantidadProcesos=$(ps aux | grep java | wc -l)
if (( CantidadProcesos >= 18 )); then
echo "Todos los procesos estan Up --- $Fecha"
else
sudo /etc/init.d/tomcat8 restart
echo "Reiniciando Servidor Tomcat --- $Fecha"
echo "Todos los procesos estan Up --- $Fecha"
else
sudo /etc/init.d/tomcat8 restart
echo "Reiniciando Servidor Tomcat --- $Fecha"
fi
Ahora colocamos este sh en el crontab, en Ubuntu este archivo se encuentra en /etc/crontab
posicionados en /etc hacemos sudo vi crontab y añadimos:
*/5 * * * * root /home/user/ReinicioTomcat.sh >> /var/log/TomcatCrontab.log
Como se puede observar, este sh se ejecuta cada 5 minutos y cuenta los procesos, si hay menos de 18 se reinicia el Tomcat. La salida del sh la guardo en el archivo TomcatCrontab.log porque deseaba saber con que frecuencia se reiniciaba el Tomcat.
Nota: Si no se ejecuta por requerir permisos, cambiar los permisos al sh, un ejemplo común:
sudo chmod 777 ReinicioTomcat.sh
Comentarios
Publicar un comentario