Get it on Google Play

Script para reiniciar un contenedor en caso de problemas con el servicio

10-01-2019
Reiniciar servidor

Reiniciar servidor

Los contenedores y los microservicios ayudan mucho al desarrollo y la gestión de operaciones pero algunos problemas nunca desaparecen. Que pasa cuando una aplicación deja de dar servicio sin ninguna explicación? (Sin errores, no se queda colgada, etc.).

Esto es con lo que estoy lidiando en uno de mis proyectos, un microservicio, concretamente un servidor Apache Tomcat que sin explicación deja de dar servicio(Esto solo pasa cada varios días). Para mitigar los efectos del problema, hasta que no encontramos una solución he creado un mini script, que voy a compartir, para reiniciar el contenedor del microservicio en caso de que este deje de dar servicio.

Concretamente, hace una petición con curl y en caso de no devolver una página web(Que tenga el tag ‘‘) va a reiniciar el contenedor entero. También añade contenido en un fichero de log para poder hacer seguimiento. Esto lo hace cada 5 minutos.</p> <pre class="brush: bash; title: ; notranslate" title=""> #!/bin/bash IP="127.0.0.1:8080" DOCKER="437" while [ 1 ] do sleep 300 WEB=$(curl --connect-timeout 5 -X GET $IP) if [[ $WEB != *"<title>"* ]]; then # Escritura de log DATE=$(date +"%F_%H:%M:%S") echo "$DATE Reinici" >> "reinici.log" # reinicio de contenedor docker stop $DOCKER docker start $DOCKER fi done </pre> <p>Aquí os lo dejo, es un script fácil de adaptar para que haga otras cosas similares y seguro que a mas de uno le resultará útil. Por cierto, después tendréis que hacer que esto se ejecute al arrancar el servidor 😀 : “<a target='_blank' href='/2019/01/10/hacer-que-una-aplicacion-script-se-ejecute-al-arrancar-como-root-en-linux-con-crontab/'>Hacer que una aplicación/script se ejecute al arrancar como root en Linux con Crontab</a>“.<br />

Si te ha servido, por favor comparte

Interesado en formación Docker?

 

Leave a Reply