通过脚本监控weblogic服务器的运行状况

时间:2015-06-01 08:02:11

标签: java weblogic

当我启动weblogic服务器时,会打印各种日志。登录weblogic的结构可以在here上找到。

我正在编写一个脚本来测试weblogic服务器是否成功启动。我只需要过滤<Error>个日志消息,但是,有一个条件,它们之后是一些java异常。因此,特别是某些java bean的失败(通过抛出的异常)是服务器失败的唯一标准。

我想忽略所有其他类型的<Error>日志。 是否有一些工具可以帮助解决这个问题?

更新

正常<Error>的示例,应忽略这些类型的错误:

    <May 29, 2015 5:02:44 PM IST> <Notice> <Stdout> <BEA-000000> <|E |17:02:44 |2 |VGORADE01 |CorrelationID=VGORADE01_2_1432899124676 |'HotDirectory': /hot does not exist: disabling service.>
    <May 29, 2015 5:02:44 PM IST> <Error> <APM> <BEA-000000> <|E |17:02:44 |2 |VGORADE01 |CorrelationID=VGORADE01_2_1432899124676 |'ColdDirectory': /cold does not exist: disabling service.>
    <May 29, 2015 5:02:44 PM IST> <Notice> <Stdout> <BEA-000000> <|E |17:02:44 |2 |VGORADE01 |CorrelationID=VGORADE01_2_1432899124676 |'ColdDirectory': /cold does not exist: disabling service.>

表示失败的<Error>示例,注意到抛出异常的堆栈跟踪:

<May 29, 2015 11:51:37 PM IDT> <Error> <APM> <BEA-000000> <|E |23:51:37 |com.amdocs.crm.uif.OrderingBackendAdapter

java.lang.ClassNotFoundException: com.amdocs.crm.uif.OrderingBackendAdapter
        at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:335)
        at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:302)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:180)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:190)
        at com.amdocs.uif.server.UifBackendConnector.initialize(UifBackendConnector.java:72)
        at com.amdocs.uif.server.UifServerRequestResponseMgr.initializeImpl(UifServerRequestResponseMgr.java:421)

2 个答案:

答案 0 :(得分:0)

也许这个小脚本有帮助。它并不完美,但是你可能需要grep WLS日志文件来获取完整的日志文件条目,即使它们超过了多行:

https://github.com/freeella/grepWlsLogFile

$ grepWlsLogFile.pl -f /path/to/AdminServer.log -s Error -c "Exception:"

但您必须使用日志文件。解析时STDOUT问题要大得多,因为消息可能跨越多行,就像你的异常一样,可能包含不可预测的&lt;和&gt;。

答案 1 :(得分:0)

在Windows服务器上,您可以在unix

上使用像grep这样的find命令

C:\甲骨文\中间件\ user_projects \域\ BASE_DOMAIN \服务器\的AdminServer \日志&GT;

输入AdminServer.log | find / i“Error”

   

像这样你可以使用windows tail实用程序来尾部文件并应用上面的find命令来查找最近的异常,或者使用find多次查找按日期查找,然后按错误查找命令

输入AdminServer.log | find / i“Jun 4”|找/我“错误”