使用 bash 的 Tomcat 错误检查器

使用 bash 的 Tomcat 错误检查器

有人可以给我一些启发,指明正确的方向吗?

我想在 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 -efwwwwwwwwwwwwwwwwww | 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
        process_seen=true
        当 !ps -efwwwwwwwwwwwwwwwwww | grep java | grep -q "$FOO_BASE_JM"; 执行
                睡眠2
                回显 -n。
                重量=$(($重量+1))
                如果 [ “$wt” -gt 30 ]; 然后
                        回声
                        echo "超时:无法看到该过程。您应该检查日志。"
                        rc_failed 1
                        process_seen=false
                        休息
        完毕
        如果 [ “x$process_seen” = “xtrue” ]; 然后
         回声
         echo -n“等待启动。”
         重量=0
         while !tail +$LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q "INFO: 服务器启动"; 执行
                睡眠2
                回显 -n。
                重量=$(($重量+1))
                如果 [ “$wt” -gt 30 ]; 然后
                        回声
                        echo "超时:在日志中找不到服务器启动成功的迹象。请检查。"
                        rc_failed 1
                        休息
         完毕
         tail +$LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q "INFO: 服务器启动" && tail +$LOGLINES /opt/$FO
O_BASE_JM/logs/catalina.out | grep “INFO:服务器启动”

        fi # 如果不存在进程

        # 记住状态并详细阐述
        rc_status -v
        ;;

作为替代方案,我建议使用 Nagios 之类的监控工具,将其日志监控插件之一指向 catalina.out 文件(或您要登录的任何位置)并搜索新的错误字符串或任何您感兴趣的内容。在我们的 Oracle DB 上,这非常有效。

相关内容