【问题标题】:Monitor the health of weblogic server through script通过脚本监控 weblogic server 的健康状况
【发布时间】:2015-06-01 08:02:11
【问题描述】:

当我启动我的 weblogic 服务器时,会打印出各种日志。登录weblogic的结构见here

我正在写一个脚本来测试,weblogic server 是否启动成功。我只需要过滤<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.>

&lt;Error&gt;的例子,表示失败,注意有异常抛出的stacktrace:

<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)

【问题讨论】:

  • 请举个例子;但是,如果你使用 linux awk 或 grep 是你最好的朋友
  • @venergiac,更新了一个例子。遗憾的是我在 Windows 上工作。

标签: java weblogic


【解决方案1】:

也许这个小脚本会有所帮助。它并不完美,但也许你只需要 grep WLS 日志文件来获取完整的日志文件条目,即使它们跨越多行:

https://github.com/freeella/grepWlsLogFile

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

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

【讨论】:

    【解决方案2】:

    在 Windows 服务器上,您可以在 unix 上使用 grep 之类的 find 命令

    C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\logs>

    输入 AdminServer.log|find /i "错误"

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

    输入 AdminServer.log|查找 /i "Jun 4"|查找 /i "错误"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多