weblogic管理工具及监控 health state 的方法

1 命令行工具监控 Weblogic

jrockit 自己提供了命令行监控工具,可以方便快捷的获取监控信息。

(1) 配置工具的启动环境:

weblogic管理工具及监控 health state 的方法_第1张图片

如上图所示,在安装好weblogic后,打开cmd命令,执行 setWLSenv 脚本(setWLSenv.cmd 或 setWLSenv.sh)进行环境配置,然后就可以正常使用weblogic.Admin 工具了。

(2) 执行监控命令,例如

#> java weblogic.Admin -username weblogic -password weblogic -url 30.0.4.31:7001 GETSTATE

#> java weblogic.Admin -username weblogic -password weblogic -url 30.0.4.31:7001 GET -pretty -type ServerRuntime

命令使用帮助:
weblogic管理工具及监控 health state 的方法_第2张图片

(3) 使用 weblogic.WLST 工具浏览 MBeans:

详情请参考:http://docs.oracle.com/middleware/11119/wls/WLSTG/toc.htm

WLST, Weblogic Scripting Tool, 是 weblogic 提供的一个脚本工具,可看做 Weblogic Server Administration Console 有的一个命令行版本。

有三种模式:交互式, 脚本式, 嵌入式。

启动并连接

c:\domains\mydomain\> java weblogic.WLST
wls:/offline> connect('weblogic', 'welcome1', 'localhost:7001')

可以通过help 了解 cd, ls, pwd 等命令的用法。

(4) 监控 ServerRuntimeMBean 的HealthState:
weblogic管理工具及监控 health state 的方法_第3张图片
上图所示,为获取Server及其所有subsystem的 health states 值:
1 首先,通过 serverRuntime(),进入ServerRuntimeMBean路径;
2 cmo 查看对象状态;
3 getHealthState()获取 Server 的 HealthState 值;
4 通过接口 getSubsystemHealthStates() 接口查看所有子对象的 HealthState 值;

2 编写 java 工具,获取监控信息:

weblogic 官方文档 http://docs.oracle.com/middleware/11119/wls/index.htm
weblogic JMX 接口开发指南 http://docs.oracle.com/middleware/11119/wls/JMXCU/toc.htm
示例代码参考 :http://ask.csdn.net/questions/179600

注意:maven项目的 pom,xml 文件中添加如下依赖

<dependency>
    <groupId>weblogicgroupId>
    <artifactId>weblogicartifactId>
    <version>1.0.0version>
dependency>
<dependency>
    <groupId>wlfullclientgroupId>
    <artifactId>wlfullclientartifactId>
    <version>1.0.0version>
dependency>

并在 /bea/wlserver/server/lib (weblogic server 安装目录下)目录下,拷贝 weblogic.jar 到当前项目的classpath中。

ServerRuntimeMBean mb = JMX.newMBeanProxy(connection, serverRuntime, weblogic.management.runtime.ServerRuntimeMBean.class, true);
HealthState[] healthStates = mb.getSubsystemHealthStates();

通过 JMX.newMBeanProxy() 接口,可以在connection 和 对应 ObjectName 对象的基础上,获取MBean,进一步获取subsystem 的 health state 值。

3 Weblogic Health State 状态监控

从 Weblogic Administration Console 中可以很方便的查看 Health 状态,如下图所示。
weblogic管理工具及监控 health state 的方法_第4张图片

注意:这里的 Health 有一个汇总的动作,就是获取 weblogic 各个维度的子 health 状态,然后汇总得到 Server 的状态。比如 threadpool,JDBC, ServerRuntime 等等的状态均为 OK, 那么 Server 的状态即为 OK。

具体代码逻辑可以通过以下方式查询:

反编译 weblogic console webapp :
在weblogic 安装目录查找 consolapp 目录,对 /consoleapp/webapp/WEB-INF/lib/console.jar 反编译,可以找到文件 HealthUtils.class 文件。
文件路径: /com/bea/console/utils/HealthUtils.class

如下就是汇总子对象 HealthState 的代码逻辑:
weblogic管理工具及监控 health state 的方法_第5张图片

注意红圈中的内容, ServerRuntimeMBean,以及其接口 getSubsystemHealthStates()。

那么怎么通过 weblogic.Admin 或者 自开发工具 获取 health 状态信息呢?

查看上图所示页面的 href 信息:
weblogic管理工具及监控 health state 的方法_第6张图片

可以查找到子对象对应的 type 值。
这里写图片描述

然后可通过 weblogic.Admin 工具去查看相应对象的 health 信息
这里写图片描述

你可能感兴趣的:(系统运维)