Проверка ошибок Tomcat с помощью bash

Проверка ошибок Tomcat с помощью bash

Может ли кто-нибудь пролить свет на этот вопрос и указать мне правильное направление?

Я хочу создать скрипт в bash, который будет проверять исключения в журналах во время запуска приложения Tomcat. Этот скрипт должен уметь обнаруживать создание новых файлов на лету, возможно, через inotify.

Этот скрипт должен постоянно проверять каталог журналов на наличие новых строк в файлах журналов и записывать те, которые содержат слова Exception:или ERRORв /var/log/errorcheckernotifier.txt.

Когда скрипт обнаруживает эту строку, INFO: Server startup inон должен записать TOMCAT IS STARTEDв нее /var/log/errorcheckernotifier.txtколичество исключений, обнаруженных во время запуска.

Этот скрипт не должен перезаписывать то, что находится в errorcheckernotifier.txt. Вместо этого добавьте его.

Как мне сохранить этот скрипт запущенным и обнаружить дальнейшие запуски, подсчитать исключения и т. д.?

решение1

Если это поможет, я могу предоставить вам «стартовую» часть моих скриптов инициализации tomcat.

    начинать)
        echo -n "Запуск $FOO_BASE_JM"
        ## Запустить демон с помощью startproc(8). Если это не удается
        ## возвращаемое значение устанавливается соответствующим образом функцией startproc.

        если ps -efwwwwwwwwwwwwwww | grep java | grep -q "$FOO_BASE_JM"; тогда
                echo "Процесс $FOO_BASE_JM уже существует"
                rc_failed 1
        еще

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

        экспорт CATALINA_OPTS
        ########/sbin/startproc $FOO_BIN
        если [ "$(id -un)" = "tomcat" ]; тогда
         $FOO_BIN начало || rc_failed 1
        еще
         /bin/su tomcat $FOO_BIN запуск || rc_failed 1
        фи

        echo -n "Ожидание появления процесса."
        вес=0
        процесс_виден=истина
        пока ! ps -efwwwwwwwwwwwwwww | grep java | grep -q "$FOO_BASE_JM"; do
                сон 2
                эхо -н .
                вес=$(($вес+1))
                если [ "$wt" -больше 30 ]; тогда
                        эхо
                        echo "Время ожидания истекло: процесс не виден. Вам следует проверить логи."
                        rc_failed 1
                        процесс_виден=ложь
                        перерыв
                фи
        сделанный
        если [ "x$process_seen" = "xtrue" ]; тогда
         эхо
         echo -n "Ожидание запуска."
         вес=0
         while ! tail +$LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q "ИНФОРМАЦИЯ: Запуск сервера"; do
                сон 2
                эхо -н .
                вес=$(($вес+1))
                если [ "$wt" -больше 30 ]; тогда
                        эхо
                        echo "Тайм-аут: в журнале не найдены признаки успешного запуска сервера. Проверьте, пожалуйста."
                        rc_failed 1
                        перерыв
                фи
         сделанный
         tail +$LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q "ИНФОРМАЦИЯ: Запуск сервера" && tail +$LOGLINES /opt/$FO
O_BASE_JM/logs/catalina.out | grep "ИНФОРМАЦИЯ: Запуск сервера"
        фи

        fi # если процесс не существует

        # Запоминайте статус и будьте многословны
        rc_status -v
        ;;

В качестве альтернативы я могу предложить использовать инструмент мониторинга, например Nagios, указав один из его плагинов мониторинга журналов на файл catalina.out (или куда вы входите в систему) и поискать новые строки ошибок или что-то еще, что вас интересует. На наших базах данных Oracle это работает отлично.

Связанный контент