Instalar el supervisord de la siguiente manera:
sudo apt-get install -y supervisor
La configuración esta en
/etc/supervisord y dentro de esta carpeta esta el archivo llamado
/etc/supervisord/supervisord.conf donde se encuentra la siguiente linea:
[include]
files = /etc/supervisor/conf.d/*.conf
Todo archivo dentro de la carpeta conf.d y que tenga en la extensión conf va a ser incluido como proceso dentro de supervisor.
Podemos crear un archivo llamado tomcat_control.conf dentro de la carpeta /etc/supervisor/config.d/ y agregar lo siguiente:
[program:tomcat]
command=/opt/tomcat/bin/catalina.sh run
user=tomcat
numprocs=1
autostart=true
autorestart=true
stderr_logfile=/var/log/supervisor/tomcat.log
stdout_logfile=/var/log/supervisor/tomcat.out.log
De esta manera luego ejecutar los siguiente comandos:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start tomcat
sudo supervisorctl status
Vamos como salida que el proceso tomcat esta corriendo correctamente.
CONFIGURAR NOTIFICACIONES SOBRE EL PROCESO TOMCAT
Para ello vamos a utilizar distintos lisener que nos ofrece supervisord como ser Crashmail y HttpOk
Primeramente debemos configurar el SMTP para poder enviar mails desde nuestro windows.
Instalamos primeramente mailutils:
sudo apt-get install mailutils
Intalamos SMTP:
sudo apt-get install ssmtp
Configuramos el SMTP:
sudo vim /etc/ssmtp/ssmtp.conf
Actualizamos con los datos de la cuenta a utilizar:
AuthUser=<user>@gmail.com
AuthPass=Your-Gmail-Password
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES
Hacemos una prueba para verificar que el mail quedo correctamente configurado.
echo "This is a test" | mail -s "Test" <user>@<email>.com
Ahora vamos a crear un archivo llamado monitoring_lisener.conf dentro de la carpeta /etc/supervisor/conf.d/* y le agregamos la siguiente información:
[eventlistener:httpok]
command=httpok -m <user>@<email>.com -t 10 http://localhost:8080
events=TICK_5
[eventlistener:crashmail]
command=crashmail -a -m <user>@<email>.com
events=PROCESS_STATE_EXITED
El primero realiza un chequeo sobre la url localhost:8080 cada 5 segundos y con un timeout de 10 segundos. Si esta condicion se cumple envia una notificación al email que se pasa como parametro.
El segundo envia un mail cuando algún proceso pasa de estado RUNNING a EXITED
Fuente:
https://rianjs.net/2013/08/send-email-from-linux-server-using-gmail-and-ubuntu-two-factor-authentication
https://serversforhackers.com/c/monitoring-processes-with-supervisord
http://superlance.readthedocs.io/en/latest/httpok.html
https://poweruphosting.com/blog/install-tomcat-8-ubuntu/