Como monitorar o aplicativo tomcat e reiniciar se não estiver em execução?

1

Eu tenho um aplicativo da web em execução no Tomcat e gostaria de ter uma maneira automatizada de monitorar o aplicativo para garantir que ele esteja em execução e, se não iniciar / reiniciar o tomcat (e também enviar um alerta por email). Eu gostaria de fazer mais do que apenas verificar se o Tomcat está em execução e garantir que uma página padrão do aplicativo possa ser carregada.

Existe alguma ferramenta que seria melhor para fazer isso, além de escrever um script de shell e executá-lo como um cron job?

    
por Michael 29.06.2014 / 17:04

2 respostas

2

Por favor, verifique o utilitário Monit .

Esta é uma ferramenta de daemon e de visualização de processos e pode fornecer os alertas e ações definidas que você pode precisar.

Um exemplo rápido:

check process tomcat with pidfile "/var/run/tomcat/tomcat.pid"
  start program = "/usr/local/tomcat/bin/startup.sh" as uid tomcat gid tomcat
  stop program = "/usr/local/tomcat/bin/shutdown.sh" as uid tomcat gid tomcat
  if failed port 8080 then alert
  if failed port 8080 for 5 cycles then restart
    
por 29.06.2014 / 17:09
1

Isso pode ajudar alguém !!

Se alguém não quiser usar nenhuma ferramenta de monitoramento, então configure uma configuração de e-mail no servidor Ubuntu usando o pacote mailutils.

link

link

Para monitorar o status do Tomcat, você pode usar o script abaixo e configurar a tarefa do cron que é executada a cada minuto / hora / dia, de acordo com suas necessidades.

#!/bin/bash

TOMCAT_HOME=/opt/tomcat
PUBLIC_IP='wget http://ipecho.net/plain -O - -q ; echo'
EMAIL_BODY="Hi Admin,\n\n$PUBLIC_IP Tomcat is down at $(date -d "+330 minutes" +"%Y-%m-%d %T") IST, Please take necessary action.\n\n\nDo not reply to this email as it is auto generated by Ubuntu system\n"

tomcat_pid() {
  echo 'ps aux | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{ print $2 }''
}

start() {
  pid=$(tomcat_pid)
  if [ -n "$pid" ] 
  then
    echo "Tomcat is already running (pid: $pid)"
  else
    # Start tomcat
    echo "Starting tomcat"
    /bin/sh $TOMCAT_HOME/bin/startup.sh
  fi


  return 0
}

pid=$(tomcat_pid)

 if [ -n "$pid" ]
  then
    echo "Tomcat is running with pid: $pid"
    #stop
  else
    echo "Tomcat is not running"
    # send an email alert then start
    echo -e $EMAIL_BODY | mail -s "$PUBLIC_IP Tomcat is down" [email protected]
    echo "Mail sent"
    #remove cache and release memory occupied by heavy processes
    start
  fi
exit 0
    
por 17.07.2018 / 12:49

Tags