Comprobador de errores de Tomcat usando bash

Comprobador de errores de Tomcat usando bash

¿Alguien puede arrojarme algo de luz y señalarme en la dirección correcta?

Quiero crear un script en bash que verifique las excepciones en los registros durante el inicio de la aplicación Tomcat. Este script debería poder detectar la creación de nuevos archivos sobre la marcha, tal vez a través de inotify.

Este script debe verificar constantemente el directorio de registros en busca de nuevas líneas en los archivos de registro y escribir la que contiene las palabras Exception:o ERRORto /var/log/errorcheckernotifier.txt.

Cuando el script detecta esta línea, INFO: Server startup indebe escribir TOMCAT IS STARTEDla /var/log/errorcheckernotifier.txtcantidad de excepciones detectadas durante el inicio.

Este script no debe sobrescribir el contenido del archivo errorcheckernotifier.txt. Añádelo en su lugar.

¿Cómo puedo mantener este script en ejecución y detectar más inicios, contar excepciones, etc.?

Respuesta1

Puedo darle la parte de "inicio" de mis scripts de inicio de Tomcat, si eso ayuda.

    comenzar)
        echo -n "Iniciando $FOO_BASE_JM "
        ## Iniciar demonio con startproc(8). Si esto falla
        ## el valor de retorno lo establece apropiadamente startproc.

        si ps -efwwwwwwwwwwwwwww | grep java | grep -q "$FOO_BASE_JM"; entonces
                echo "El proceso $FOO_BASE_JM ya existe"
                rc_failed 1
        demás

        LOGLINES=$(cat /opt/$FOO_BASE_JM/logs/catalina.out | wc -l)

        exportar CATALINA_OPTS
        ########/sbin/startproc $FOO_BIN
        si [ "$(id -un)" = "tomcat" ]; entonces
         $FOO_BIN inicio || rc_failed 1
        demás
         /bin/su tomcat $FOO_BIN inicio || rc_failed 1
        fi

        echo -n "Esperando que aparezca el proceso".
        peso=0
        proceso_visto=verdadero
        mientras ! ps -efwwwwwwwwwwwwwwww | grep java | grep -q "$FOO_BASE_JM"; hacer
                dormir 2
                eco -n .
                peso=$(($peso+1))
                si [ "$peso" -gt 30 ]; entonces
                        eco
                        echo "Tiempo de espera: no puedo ver el proceso. Debes verificar los registros".
                        rc_failed 1
                        proceso_visto = falso
                        romper
                fi
        hecho
        si [ "x$process_seen" = "xtrue" ]; entonces
         eco
         echo -n "Esperando inicio".
         peso=0
         mientras ! cola +$LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q "INFORMACIÓN: Inicio del servidor"; hacer
                dormir 2
                eco -n .
                peso=$(($peso+1))
                si [ "$peso" -gt 30 ]; entonces
                        eco
                        echo "Tiempo de espera: no se pueden encontrar signos de inicio exitoso del servidor en el registro. Verifique".
                        rc_failed 1
                        romper
                fi
         hecho
         cola +$LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q "INFO: Inicio del servidor" && tail +$LOGLINES /opt/$FO
O_BASE_JM/logs/catalina.out | grep "INFORMACIÓN: Inicio del servidor"
        fi

        fi # si no existe ningún proceso

        # Recuerde el estado y sea detallado
        estado_rc -v
        ;;

Como alternativa, puedo proponer el uso de una herramienta de monitoreo como Nagios, apuntando uno de sus complementos de monitoreo de registros al archivo catalina.out (o dondequiera que esté iniciando sesión) y buscar nuevas cadenas de error o lo que le interese. En nuestras bases de datos Oracle eso funciona perfectamente.

información relacionada