监控WebSphere常见的有两种方案,如下:
方案一、通过perfServletApp进行监控
perfServletApp项目是由WebSphere提供的(在安装目录下可以找到PerfServletApp.ear ,默认没有部署),用于简单的端对端检索性能数据, IBM或第三方供应商提供的任何工具都可以处理此性能数据。通过servlet访问,返回XML 格式的信息,然后解析XML即可获得相应的监控数据。
方案二、使用JMX 接口开发监控程序
通过使用PerfMBean或个别MBean,您可使用AdminClient API获取性能监控基础结构( PMI )数据。
两种方案优劣比较
通过 perfServletApp 进行监控 |
使用 JMX 接口开发监控程序 |
可以使用现有的成熟代码,减少工作量 |
全部代码需要从零开始 |
支持各不同版本时无差别 |
支持各不同版本比较麻烦,每个版本用的 JAR 包不一样,实现机制也不一样 |
可能存在特殊需求而 perfServlet 不能满足的情况 |
可支配性强,可以访问到 WAS 提供的所有MBean |
一、 通过 perfServletApp 进行监控
perfServletApp 项目是由 WebSphere 提供的(在安装目录下可以找到 PerfServletApp.ear ,默认没有部署),用于简单的端对端检索性能数据, IBM 或第三方供应商提供的任何工具都可以处理此性能数据。通过 servlet 访问,返回 XML 格式的信息。
安装 perfServletApp
1. 安装 perfServletApp.ear
在管理控制台,点击左侧树中的应用程序 节点。点击企业应用程序 。
右侧的表中将列出已安装的所有应用程序。检查 perfServletApp 是否存在。如果不存在,则点击安装 以安装perfServletApp.ear 文件(默认情况下该文件位于 <WebSphere Installed Location>/WebSphere/AppServer/installableApps 目录下,例如: D:/Program Files/WebSphere/AppServer/installableApps/perfServletApp.ear )。然后启动这个应用程序。
2. 在浏览器中打开 http://127.0.0.1:9080/wasPerfTool/servlet/perfservlet 链接,可以看到返回的 XML 文件,第一行是这样的格式:
< PerformanceMonitor responseStatus =" success " version =" 7.0.0 .5 "> ,这说明 perfServletApp 安装成功了。
配置 perfServletApp
如果是 WAS6.1 ,打开 http://127.0.0.1:9080/wasPerfTool/servlet/perfservlet 会返回 XML 格式的错误信息,第一行是这样的格式:
< PerformanceMonitor responseStatus =" failed " version =" 6.1.0 .0 "> ,
并且后面会带有“由于凭证不足或凭证为空”之类的错误提示。
这时需要进行一些配置:
1 ■ 启用应用程序安全性
2 ■ 在perfServletApp下进行安全用户的配置
3 ■ 保存修改后重启WAS即可
通过perfServletApp获取监控数据
启动WAS后打开下面的链接可以查看帮助文档:
http://127.0.0.1:9080/wasPerfTool/servlet/
获取监控数据的URL格式为:
在浏览器地址栏中输入此 URL ,转向此地址后提示输入用户名密码,然后就可以看到返回了 XML格式的信息。
注意:加上 &version=5 则返回的格式是5.x ,如果不加,则返回的格式是6.0
例子:获取JVM运行时性能数据
URL 为,可以通过浏览器打开,项目中则通过Java代码访问URL:
返回 XML 格式的 JVM 运行时性能数据:
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE PerformanceMonitor (View Source for full doctype...)>
- <PerformanceMonitor responseStatus="success" version="7.0.0.5">
- <Node name="IE361-PCNode01">
- <Server name="server1">
- <Stat name="JVM 运行时">
- <BoundedRangeStatisticIDBoundedRangeStatisticID="1" highWaterMark="91147" integral="0.0" lastSampleTime="1294795486836" lowWaterMark="51200" lowerBound="51200" mean="0.0" name="HeapSize" startTime="1294794248020" unit="千字节" upperBound="262144" value="91147" />
- <CountStatisticIDCountStatisticID="3" count="57698" lastSampleTime="1294795830112" name="UsedMemory" startTime="1294794248020" unit="千字节" />
- <CountStatisticIDCountStatisticID="4" count="1582" lastSampleTime="1294795830112" name="UpTime" startTime="1294794248020" unit="SECOND" />
- <CountStatisticIDCountStatisticID="5" count="0" lastSampleTime="1294795830112" name="ProcessCpuUsage" startTime="1294794248020" unit="不适用" />
- </Stat>
- </Server>
- </Node>
- </PerformanceMonitor>
在Java程序中对获得XML进行解析,即可获得相关的监控数据。
在Java程序中访问perfServletApp
通过浏览器访问perfServletApp时会提示输入用户名密码,那么在Java程序中又如何访问呢?
如果像访问一般的URL一样,直接访问,会提示鉴权错误,因为perfServletApp的URL是被保护的。
以下代码演示如何访问受保护的URL:
- URL url = new URL(
- "http://localhost:8080/manager/jmxproxy?qry=*%3Atype%3DManager%2C*");
- URLConnection conn = (URLConnection) url.openConnection();
- // URL授权访问 -- Begin
- String password = "admin:chenfeng"; // manager角色的用户
- String encodedPassword = new BASE64Encoder()
- .encode(password.getBytes());
- conn.setRequestProperty("Authorization", "Basic " + encodedPassword);
- // URL授权访问 -- End
- InputStream is = conn.getInputStream();
- BufferedReader bufreader = new BufferedReader(new InputStreamReader(is));
- String line = null;
- while ((line = bufreader.readLine()) != null) {
- System.out.println(line);
- }
二、使用JMX接口开发监控程序
通过使用 PerfMBean 或个别 MBean ,您可使用 AdminClient API 获取性能监控基础结构( PMI )数据。
所需要的JAR包:
◆ com.ibm.ws.admin.client_7.0.0.jar
◆ ibmjgssprovider.jar
◆ ibmkeycert.jar
1 . WebSphere不启用管理安全性
如果WebSphere不启用管理安全性的话很简单,直接就能访问AdminClient API,看下面的代码:
- Properties adminProps = new Properties();
- adminProps.setProperty("type", "soap");
- adminProps.setProperty("host", "127.0.0.1");
- adminProps.setProperty("port", "8880");
- AdminClient adminClient = AdminClientFactory.createAdminClient(adminProps);
- String domainName = adminClient.getDomainName();
注意:要使上面的代码运行正确,必须关闭 WAS6.1 的管理安全性。
关闭WAS6.1的管理安全性的方法
登录 WebSphere 的集成解决方案控制台,进入安全性 --> 全局安全性 --> 去除“启用管理安全性”的勾选 --> 点击“应用” --> 保存到主配置 --> 重启 WAS
不过出于安全性考虑,一般实际环境下的WebSphere是不可能关闭管理安全性的。
2 . WebSphere启用管理安全性
如果WebSphere已启用管理安全性,则需要先配置证书才能访问AdminClient API。在WAS6.0 里面,这个步骤很简单,默认的证书能直接用,但是 WAS6.1 就不行,默认的证书不能用,必须生成自己的证书并配置到WAS6.1里面。
WAS6.1生成和配置证书的方法
该部分本来是直接加入到本文中的,但是导致文章太长,可读性差,所以单独分了出去,地址如下,请移驾:
http://yunzhu.iteye.com/blog/1825874
使用证书监控WebSphere的示例代码
- Properties adminProps = new Properties();
- adminProps.setProperty(AdminClient.CONNECTOR_TYPE, AdminClient.CONNECTOR_TYPE_SOAP);
- adminProps.setProperty(AdminClient.CONNECTOR_HOST, "localhost");
- adminProps.setProperty(AdminClient.CONNECTOR_PORT, "8880");
- adminProps.setProperty(AdminClient.USERNAME, "chenfeng");
- adminProps.setProperty(AdminClient.PASSWORD, "chenfeng");
- adminProps.setProperty(AdminClient.CACHE_DISABLED, "false");
- // WebSphere服务器是否已启用管理安全性
- adminProps.setProperty(AdminClient.CONNECTOR_SECURITY_ENABLED, "true");
- adminProps.setProperty(AdminClient.CONNECTOR_AUTO_ACCEPT_SIGNER, "true");
- adminProps.setProperty("javax.net.ssl.trustStore","D:/JavaTools/IBM/MyKey/trust.jks");
- adminProps.setProperty("javax.net.ssl.keyStore","D:/JavaTools/IBM/MyKey/store.jks");
- adminProps.setProperty("javax.net.ssl.trustStorePassword","chenfeng222");
- adminProps.setProperty("javax.net.ssl.keyStorePassword", "chenfeng111");
- AdminClient adminClient = AdminClientFactory.createAdminClient(adminProps);
- String domainName = adminClient.getDomainName();
- System.out.println("domainName" + domainName );
- ObjectName objName = new ObjectName("WebSphere:name=JVM,process=server1,platform=proxy,node=YNF-PCNode01,j2eeType=JVM,J2EEServer=server1,version=6.1.0.0,type=JVM,mbeanIdentifier=JVM,cell=YNF-PCNode01Cell,spec=1.0");
- Object freeMemory= adminClient.getAttribute(objName, "freeMemory");
- System.out.println("freeMemory" + freeMemory);
上面的例子只是简单地获取DomainName和空闲内存,实际开发中采集具体的数据,则需要查询API,以获得详细的ObjectName。
几个重要的官方文档地址
(注:如果网址变更了导致无法访问,请自行根据标题搜索)
一、官方教程:开发管理客户机程序
http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=%2Fcom.ibm.websphere.nd.doc%2Finfo%2Fae%2Fae%2Ftjmx_develop.html
二、官方教程:使用JMX接口开发自己的监视应用程序
http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=%2Fcom.ibm.websphere.express.doc%2Finfo%2Fexp%2Fae%2Ftprf_pmijmx.html
三、官方AdminClient接口文档
http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=%2Fcom.ibm.websphere.javadoc.doc%2Fpublic_html%2Fapi%2Fcom%2Fibm%2Fwebsphere%2Fmanagement%2FAdminClient.html
四、官方Mbean接口API
http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.javadoc.doc/public_html/mbeandocs/index.html
相信有了以上的入门教程,加上这几个地址,剩下的就没有什么大的技术问题了,剩下的就是程序的架构和编码的实现了。希望对你有所帮助。
相关推荐
【标题】:“Websphere解决方案”揭示了IBM的中间件技术在企业级应用集成中的核心作用,为企业构建高效、可扩展的IT基础设施提供了强大的支持。Websphere作为全球广泛采用的企业级应用服务器平台,它的解决方案旨在...
通过JMX,开发者可以实现自定义的监控解决方案,例如收集性能指标、触发警报或自动调整系统设置。这个项目为那些希望深入了解Java应用服务器监控并实现定制化管理的人员提供了一个有价值的参考。理解JMX的工作原理和...
IBM 面向能源和公用事业企业的WebSphere业务集成解决方案是一款专为该行业设计的高效集成平台,旨在提升运营效率,快速响应市场需求。通过将领先的开放式技术与深厚的业务流程理解相结合,该解决方案能够帮助企业...
首先,IBM WebSphere门户整合解决方案是一种先进的企业级平台,用于构建、部署和管理集成的Web应用程序和门户。它提供了一个统一的入口点,让用户能够访问多种业务应用、信息资源和协作工具。WebSphere门户支持个性...
WebSphere作为IBM软件栈的重要组成部分,提供了全面的中间件解决方案,支持Java EE(现在称为Jakarta EE)标准,为开发人员提供了强大的平台来构建分布式应用程序。 WebSphere的主要功能包括: 1. **应用服务器**...
Apache WebSphere服务器是业界广泛采用的一种解决方案,它能够提供强大的处理能力和灵活的扩展性。本文将详细介绍如何在Linux环境下部署Apache Web服务器,并与IBM WebSphere Application Server (WAS)集成,实现高...
- 使用JMX监控WebSphere实例的方法,包括暴露JMX MBeans、配置JMX客户端连接以及解析返回的数据。 - 如何通过管理控制台进行集群管理,例如添加或移除服务器实例,设置负载均衡策略。 - 遇到的安全问题和解决方案,...
WebSphere是IBM提供的一款强大的企业级...这些文档和方案展示了WebSphere生态系统中的多种组件,以及它们如何协同工作以提供全面的企业级解决方案。了解和掌握这些知识点,对于设计、实施和维护复杂的IT环境至关重要。
通过上述对 WebSphere Application Server 7.0 监控功能的详细介绍,我们可以看出,IBM 在这一版本中引入了许多新的特性和改进,旨在提供更加全面和灵活的性能监测解决方案。这对于那些依赖于 WebSphere 应用程序...
本文将深入探讨这些常见问题及其解决方案,帮助你顺利地在WebSphere应用程序服务器上运行CXF服务。 首先,理解CXF与WebSphere的集成原理至关重要。CXF提供了一个Servlet容器插件,可以将其作为一个Servlet部署到...
它在信息技术领域扮演着至关重要的角色,为跨网络、操作系统和应用程序提供了高效、安全的数据传输解决方案。作为MQ系列产品的基石,WebSphere MQ为不同系统间的通信提供了强大的支持,确保了企业应用之间的稳定、高...
WebSphere提供了全面的集成解决方案,涵盖了从开发、测试到生产的一系列生命周期管理。 二、WebSphere安装与配置 学习WebSphere,首先需要了解如何安装和配置服务器。这包括选择合适的版本(如WebSphere ...
WebSphere是IBM公司的一款强大的企业级应用服务器,它在IT行业...对于准备此类考试的学生,深入理解WebSphere的原理和操作是必要的,这不仅能提升理论知识,也有助于他们在实际工作中更好地运用WebSphere解决企业问题。
WebSphere是IBM提供的一个全面的集成软件平台,其核心是应用服务器,为构建、运行和监控高度可用的Web应用程序和跨平台解决方案提供了必要的中间件基础设施。本篇将重点介绍WebSphere Application Server 6.0及其...
两大知名的产品家族——IBM WebSphere和BEA(后被Oracle收购)WebLogic,都提供了强大的中间件解决方案,用于构建、部署和管理复杂的分布式应用程序。这两款产品在功能、性能、可扩展性、管理和安全性等方面都有各自...
总的来说,WebSphere MQ V6.0是一个强大且可靠的中间件解决方案,为企业构建可靠的数据交换平台提供了坚实的基础。其丰富的功能、优秀的性能和广泛的平台支持使其在各种复杂的企业环境中都能发挥出色的表现。
WebSphere MQ 8.0 自带的 JAR 包是一组关键组件,它们构成了 IBM 的消息中间件解决方案,用于在不同应用程序之间可靠地传递数据。这些 JAR 文件位于 `WebSphere MQ\java\lib` 目录下,是开发、配置和运行与 ...
WebSphere提供了全面的中间件解决方案,用于构建、部署和管理分布式计算环境中的业务应用程序和服务。 1. **WebSphere架构** WebSphere架构基于Java EE(Java Platform, Enterprise Edition)标准,它由多个组件...
### WebSphere MQ for Linux v6.0:关键知识点解析 #### 一、概述 IBM WebSphere MQ for Linux ...对于开发者和系统管理员来说,掌握这些知识点将有助于更好地利用 WebSphere MQ 来构建高效、安全的消息传递解决方案。