通过JMX监控管理weblogic的运行

Weblogic如何通过JMX监控JDBC资源(数据源)数据 今天一同事问到了我这个问题,由于本人对Weblogic不太了解,所以决定先尝试一下。     新建一个数据源,通过传统的Jconsole连接(需要在Weblogic启动参数中配置jmx参数,这里省略),在MBean一栏中 没有找到关于JDBC资源的监控项。 通过查找资料,发现可以通过IIOP访问,步骤如下: 1、在${WLS_HOME}/lib下面执行 java -j 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 1.JMX概述 2.Weblogic6.1的实现 3.一个小例子 1.JMX概述 JMX(Java Management Extensions)是SUN创建的一套规范。BEA WebLogic Server实现了JMX大部分的API,并且提供了一个完全兼容JMX的控制台来管理各种资源。OPEN SOURCE的应用服务器JBoss也是基于JMX来实现。并且对之评价很高,认为是目前为止最好的软件集成工具。JBoss的成功依靠于JMX。 (载自JBoss在线文档,原文是:Our goal is to provide the full J2EE stack in the free/open world. We are already there and the reason for our success lies on JMX. JMX or Java Management eXtension is the best weapon we have found for integration of software. It provides a common spine in which we plug in modules, containers and plugins. ) 关于JMX的具体描述不是这篇短文所能完成的(我也是初学,比你知道的多不了多少)。这里只是简短的描述一下,方便大家理解。有兴趣的可以下载JMX文档(java.sun.com ) JMX specification定义的overall management architecture如下 Instrumentation level Agent level Distributed services level Additional management protocol APIs(比如SNMP协议,TMN等 ) 不考虑附加的管理协议API,整个结构分为三个层次Instrumentation level,Agent level, Distributed services level.名字我就不翻译了,以免引起误解。JMX1.0白皮书上有一张很好的图示,描述的很清楚。简要的说,Instrumentation level定义了一套被管理的资源需要遵守的规范。这里被管理资源是一个很广泛的概念。可以是一个应用程序,一个具体的类,一个服务,甚至一个硬件。不过,所有的资源都是由java语言开发的,其它的资源需要提供一个java封装。在JMX中,被管理的资源被封装为Managed Bean ,简称MBean.MBean是对所有资源的一种抽象。目前,JMX定义了四种类型的MBean:standard, dynamic, open and model MBeans.其中, open MBean ,model MBean 继承自dynamic MBean。不过,在1.0中open MBean的定义并没有完成,但是根据规范的描述,其提供的功能确实令人激动。SUN公司也承诺将来open Mbean会成为JMX产品强制实现的部分。此外,Instrumentation level还定义了JMX Notification Model以及MBean Metadata Classes。MBean通过JMX Notification Model将其状态变化的消息通知管理程序和Agent。Agent通过 Metadata获得MBean的信息。 Instrumentation level具体的细节这里不再描述。 The agent level provides a specification for implementing agents. Management agents directly control the resources and make them available to remote management applications. A JMX agent is a management entity which runs in a JVM and acts as the liaison between the MBeans and the management application. A JMX agent is composed of an MBean server, a set of MBeans representing managed resources, a minimum number of agent services implemented as MBeans, and typically at least one protocol adaptor or connector. The distributed services level provides the interfaces for implementing JMX managers. This level defines management interfaces and components that can operate on agents or hierarchies of agents. 2.Weblogic6.1的实现 weblogic6.1采用sun的JMX参考实现(在weblogic.jar里包含了com.sun.management包和javax.management包),不过自己又加入了一些新的特性。我注意到的有以下一些: a.定义接口WebLogicMBean,该接口继承了DynamicMBean(上面描述的dynamic MBean必须实现的接口),MBeanRegistration(用于MBean在Agent注册),NotificationBroadcaster(用于发送Notification,参见JMX Notification Model)。所有的weblogic的MBean都是该接口的子类。也就是说,weblogic里面所有的MBean都是dynamic MBean,当然,你也可以自己写一些standard MBean注册到weblogic的Agent上去。 WebLogicMBean主要具有以下三种类型的MBeans: Administration MBeans, 封装从config.xml读取的整个weblgoic domain的配置信息。 Configuration MBeans, 每个weblogic server一份,是Administration MBeans的copy,用于server配置自己 Runtime MBeans, 代表着运行时刻WebLogic Server的各种组件和子系统。 我们通过weblogic提供的HTMl形式的控制台对weblogic的配置操作,最终都通过调用Administration MBeans实现,在系统运行结束时写回config.xml配置文件。明白了这些,你也就完全可以写一个Swing格式的控制台或者来对weblogic进行配置。或者说,对于最终用户比较关心的JDBC数据源的信息,你完全可以自己写一个图形界面来配置。从而不让用户通过浏览器进入weblogic自己带的console进行操作。这样就可以避免用户修改一些很关键的系统信息。 在weblogic server的JMX Agent的视图里,一个EJB组件,一个JDBC数据源都是Runtime MBeans,甚至weblgoic自己的shutdown类也是一个Runtime MBeans。weblogic为各种资源定义了不同的子Runtime MBeans接口。 比如对大家都熟悉的EJB来说,就定义了接口EJBRuntimeMBean,而且更详细的是,对于不同的Bean还定义了不同子接口,比如:EntityEJBRuntimeMBean, MessageDrivenEJBRuntimeMBean, StatefulEJBRuntimeMBean, StatelessEJBRuntimeMBean。 当我们调用一个EJB的某个方法时,请求会首先送到JMX的Agent,Agnet根据请求确定要访问哪一个Runtime MBeans,然后调用该Runtime MBeans的方法,这是通过DynamicMBean的方法invoke(java.lang.String actionName, java.lang.Object[] params, java.lang.String[] signature) (actionName:要调用的方法名;params:参数数组 ;signature:该方法的型构)来实现的,invoke的返回结果就是被调用的ejb的方法的返回结果。最后,将结果返回给调用者。 b.为MBean定义了Home接口,这是JMX1.0规范所没有的,这样,对于应用程序来说就可以像访问EJB那样在远程首先通过JNDI查找该MBean的Home接口,获得Home接口后就可以获得该MBean,然后,就可以通过MBean对资源进行管理操作。这个流程与EJB几乎完全一样。 而且,更方便的是,weblogic提供了一个类weblogic.management.Helper,该类通过了一组静态方法getMBeanHome可以非常方便的得到MBeanHome对象。他的用法下面的例子将会说明 3.一个小例子 下面的程序编已通过并在weblogic 6.1运行成功。 其中getMBeanHome参数中12345678是我的weblogic 的system的用户密码,SERVER_NAME是我的weblogic的sever的名字,可以在config.xml中找到。 TestJMX执行后,将打印出我的weblogic上所有的MBean ----源程序 TestJMX.java--------------------------------------------------------------



import java.util.*; 

import weblogic.management.*; 



public class TestJMX  { 

public MBeanHome localHome; 

public MBeanHome adminHome ; 

public static String SERVER_NAME = "myserver"; 

public void find() { 

String url = "t3://127.0.0.1:7001" ; 

try { 

localHome = (MBeanHome)Helper.getMBeanHome("system","12345678",url,SERVER_NAME); 

adminHome = (MBeanHome)Helper.getAdminMBeanHome("system","12345678",url); 

System.out.println("Local and Admin Homes  found using the Helper class"); 

} catch (IllegalArgumentException iae) { 

System.out.println("Illegal Argument Exception: "   iae); 

} 

} 

public static void main(String[] args ) { 

TestJMX test = new TestJMX(); 

test.find(); 

Set allMBeans =test.localHome.getAllMBeans(); 

System.out.println("Size: "   allMBeans.size()); 

for (Iterator itr = allMBeans.iterator(); itr.hasNext(); ) { 

WebLogicMBean mbean = (WebLogicMBean)itr.next(); 

WebLogicObjectName objectName = mbean.getObjectName(); 

System.out.println(objectName.getName()  " isa " mbean.getType()); 

} 

Set all2MBeans =test.adminHome.getAllMBeans(); 

System.out.println("Size: "   all2MBeans.size()); 

for (Iterator itr = all2MBeans.iterator(); itr.hasNext(); ) { 

WebLogicMBean mbean = (WebLogicMBean)itr.next(); 

WebLogicObjectName objectName = mbean.getObjectName(); 

System.out.println(objectName.getName()  "  isa " mbean.getType()); 

} 

} 

} 

-------------------------------------------------------------------------------------- 下面是它的运行输出结果中的部分,我们看到,从weblogic返回的 WebLogicMBean包括了几乎所有的内容。 (DBManagerDataSource是我在weblogic自己配的JDBC数据源;unix是我在weblogic自己配的一个web应用;Process_CRM是一个部署的EJB;eos10是weblogic自己实现的SNMP Agent) .... eos10 isa(n) SNMPAgentConfig eos10 isa(n) SNMPAgent unix isa(n) WebAppComponent roleejb isa(n) Application eos10 isa(n) SNMPAgentConfig DBManagerDataSource isa(n) JDBCTxDataSource .... 你也可以调用MBeanHome的getMBean方法获得自己感兴趣的某种MBean对象,具体的用法参见weblogic6.1文档得到了这些MBean的引用后,就可以设置他的属性,调用他的方法等等。而且,你还可以把他造型为更具体的子类,比如,对于SNMPAgent,你可以直接造型为SNMPAgentMBean(WeblogicMBean的子接口),这样就可以执行一些网络管理指令,获得网络管理信息(我对SNMP一窍不通,如果说的不好,见笑了),SNMPAgentMBean提供了如下操作:

 

boolean addSNMPAttributeChange(SNMPAttributeChangeMBean attrchange) 

boolean addSNMPCounterMonitor(SNMPCounterMonitorMBean countermonitor) 

boolean addSNMPGaugeMonitor(SNMPGaugeMonitorMBean gaugemonitor) 

boolean addSNMPProxy(SNMPProxyMBean snmpProxy) 

boolean addSNMPStringMonitor(SNMPStringMonitorMBean stringmonitor) 

void setSNMPLogFilters(SNMPLogFilterMBean[] snmpLogFilters) 

void setSNMPPort(int port) 

void setSNMPProxies(SNMPProxyMBean[] snmpProxys) 

void setSNMPStringMonitors(SNMPStringMonitorMBean[] snmpStringMonitors) 

void setTargetedTrapDestinations(SNMPTrapDestinationMBean[] snmpTrapDestinations) 

void setUserDefinedMib(java.lang.String mibName 
自己做一个监听类挂上去就可以实现监控,具体的接口方法参见weblogic文档 此外,还可以做的事情有,自己注册一个新的MBean到weblogic的MBean Server上。总之,通过jmx,我们可以很方便的进行对weblogic进行管理监控。这只是一个JMX的具体应用。在很多领域,JMX大有用武之地。 我对JMX以及weblogic的学习还不是很深,如果出现错误的地方,欢迎指正,我们可以讨论学习 我的mail :reallava@yahoo.com.cn
未授权访问漏洞利用链实战:从单点到链路的攻防思维跃迁 在网络安全领域,未授权访问漏洞是指攻击者无需身份验证即可访问系统服务或接口。其原理在于服务配置不当,未启用或正确实施访问控制机制。这类漏洞的技术价值常被低估,实则能成为复杂攻击链的完美起点,通过串联多个漏洞点实现权限提升、横向移动和数据窃取。应用场景广泛,常见于各类中间件、监控组件和API管理界面,如Spring Boot Actuator、Redis、Swagger UI等。本文聚焦于如何将孤立的未授权访问点,如metrics未授权和Spring Cloud Gateway未授权(CVE-2022-229 阅读详情

相关推荐

WeblogicJMX:Weblogic JMX 实用程序

网络逻辑JMX 这是一个正在进行的工作,将经常更新,直到完成 一组用于 9.X 及更高版本的 Weblogic 服务器的 JMX 服务器实用程序。 目前实时给出一些监控统计,后续会更新更多功能 特征 目前可以使用以下功能: JVM 监控统计 服务器线程池运行时统计 服务器统计 JDBC 数据源统计信息 应用程序部署列表和状态 世贸中心现状 概念 WeblogicJMX 使用 Java JMX 进行 MBean 服务器调用并获取连接到 DomainRuntimeMBean 的统计信息 先决条件 设置 需要有兼容的 JDK 1.6 及更高版本。 需要以下需要手动放置的库,直到项目被 mavenized slf4j-api-1.6.6 logback-core-1.0.13 logback-classic-1.0.13 weblogicfullclient.jar (* 关于构建 w

用JMX监控Weblogic 运行时状态

这里写自定义目录标题 JMX提供开放和可扩展管理服务的规范。WebLogic Server添加了自己的方法和拓展。 所有WebLogic Server资源和跑在其上的第三方服务和应用,都被一个基于JMX的服务管理。 WebLogicServer提供了一系列MBean,可以使用这些MBean来配置、监控和管理WebLogic服务器资源。 Runtime MBeans 包含有关服务器及其资源的运行时状态的信息。 Configuration MBeans包含有关服务器和资源配置的信息。 Runtime MBean

qq_42487752的博客 1223

通过jmx监控管理weblogic

JMX(Java Management Extensions)是SUN创建的一套规范。BEA WebLogic Server实现了JMX大部分的API,并且提供了一个完全兼容JMX的控制台来管理各种资源。OPEN SOURCE的应用服务器JBoss也是基于JMX来实现。并且对之评价很高,认为是目前为止最好的软件集成工具。JBoss的成功依靠于JMX。

jmx远程调用tomcat和weblogic获取服务器监控性能数据

前言 JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理。 应用场景:中间件tomcat和weblogic都支持jmx,需要对其进行配置即可通过接口或者jdk自带的工具jcode获取监控数据 下面通过程序和jcode工具展示数据 一、tomcat和weblogic配置jmx 这里提供tomcat和weblogic的jmx配置和第三方调用,was的待研究 1.tomc

abigale-csdn 1350

机器学习预测土壤养分:从电导率、pH到随机森林与神经网络的农业实践

在智慧农业与精准农业领域,机器学习已成为处理复杂农业数据、挖掘潜在规律的关键技术。其核心原理在于通过算法从多维数据中自动学习特征与目标变量之间的映射关系,尤其擅长捕捉非线性关联。这项技术的核心价值在于能够将传统上依赖昂贵、耗时实验室分析的问题(如土壤养分检测),转化为基于易获取传感器数据(如电导率、pH值)的快速、低成本预测任务,为农业生产的实时决策与资源优化提供了全新可能。其典型应用场景包括作物生长监测、产量预测以及精准施肥管理等。本文聚焦于利用随机森林和神经网络等回归算法,构建通过土壤物理参数预测氮磷钾

weixin_33693070的博客 669

数据分析是什么?

说道“数据分析”一词,大家应该并不陌生,数据分析从字面上来理解,就是对数据做出分析然后得出一个结论,看起来浅显易懂,下面我们把这个词语分开得到的是“数据”与“分析”。“数据”的范围就很广泛了,小到一个计量数字,大到成亿级别的数据汇总,都可以称为数据;“分析”一词并不难理解,以智慧思维的方法对某一事物做出合理的解释,给出结论是为分析,一般会用到数学上的分析方法,比如统计学或者概率论等等。 1. 什么是数据分析 1) 数据分析发展背景 进入到 21 世纪以后,伴随着互联网的迅速发展,大数据应运而生,越来越多的数

MC_XY的博客 5432

Java之——使用JMX监控Weblogic

Java中如何使用JMX来监控Weblogic的各种状态

qq_38946379的博客 1035

浮点数加法器设计

一.设计内容及其要求 内容 根据浮点数的运算规则和IEEE754标准,实现浮点数的加法运算器。 要求: 浮点数格式:符号位1位,阶码8位,尾数23位 要求该实验能完整的体现浮点数的运算的五个步骤:对阶、尾数求和、规格化、舍入(要求使用对偶舍入)、溢出判断。 二.基本要素 浮点数 浮点数即实数,实数是所有有理数和无理数的集合。它之所以被称作浮点数,是因为小数点在数中的位置并不是固定的。一个浮点数值分为两部分存储:数值以及小数点在数值中的位置。 计算机中的浮点运算的计算结果一般是不确定的,一块芯片的浮点运算

Phoenix_ZengHao的博客 1万+

用Zabbix通过JMX方式监控JVM/Tomcat/Weblogic/Websphere/Jboss等

 转载自:http://www.huilog.com/?p=688 JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。 上面的介绍有点绕,我是这么简单粗暴地理解的:JMX之于JVM或JAVA...

Jay Chang 2761

PostgreSQL向量数据插件--pgvector安装(附PostgreSQL安装)

本文为本人在安装pgvector中踩过的坑,已找到解决方法,现向大家分享。

m0_62627802的博客 2万+

report_delay_calculation/check_timing/report_annotated_parasitics/report_analysis_coverge

如何debug 一颗cell 或一段net 的delay, 常用的办法是用report_delay_calculation 报这颗cell 或这段net, 会得到形式如下的report, 从该report 中可以得到: 表头需要特别关注的是command, 确定report 的对象及加的option; From/To pin: cell 的input pin 和...

diedai7174的博客 1800

老技术新谈,Java应用监控利器JMX(2)

【这是一猿小讲的第45篇原创分享】各位坐稳扶好,我们要开车了。不过在开车之前,我们还是例行回顾一下上期分享的要点。上期由于架不住来自于程序员内心的灵魂的拷问,于是我们...

一猿小讲 968

MATLAB - ROS 2 工具箱入门教程

ROS 工具箱提供了一个连接 MATLAB® 和 Simulink® 与机器人操作系统(ROS 和 ROS 2)的接口。利用该工具箱,您可以设计 ROS 节点网络,并将 MATLAB 或 Simulink 生成的 ROS 节点与现有的 ROS 网络相结合。工具箱包括 MATLAB 函数和 Simulink 块,可通过记录、导入和回放 rosbag 文件来可视化和分析 ROS 数据。您还可以连接到实时 ROS 网络,访问 ROS 消息。

机器人控制与仿真应用 3068

jmx,tomcat的架构基础

tomcat很熟悉吧?天天用~~ 往下看就没有几个敢这么自认了, 大家可以尝试访问这样的地址 : http://localhost:8080/manager/serverinfo http://localhost:8080/manager/jmxproxy/?qry= *%3Aj2eeType=Servlet%2c* jmxproxy是一个servlet,为tomcat的核心jmx提...

无名刀客 195

基于Transformer模型实现交通流量时序预测(PyTorch版)

Transformer模型,作为一种基于自注意力机制的深度学习模型,最初在自然语言处理领域取得了突破性进展,其出色的长距离依赖关系捕捉能力使其在处理时序数据时也表现出色。将Transformer模型应用于交通流量时序预测,可以充分利用其优势,实现对交通流量更加精准、高效的预测。

时序笔记 2574

数据结构课程设计--基于知识图谱的中医食疗数据管理与应用

【代码】数据结构课程设计--基于知识图谱的中医食疗数据管理与应用。

M_inherit的博客 568

Java性能调优工具

作为一名Java开发人员,应当始终关注应用程序的性能问题;同时也应该同能够帮助提高应用程序性能的人(如DBA,其实这经常是最重要的一个环节)一起协作;并尽可能地去关注Java性能方面的一些最佳实践。        这里将向大家以图解的形式介绍Java性能调优工具BEA JRockit Mission Control,但这里只介绍该工具的基本环境的搭建,让新人少走弯路,至于该工具的具体介绍及使用请查...

敢想!敢作!敢当! 165

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

weblogic详解_这个是我迄今为止见到过讲解最详细的Tomcat架构解析与JVM、GC详解及调优文档,值得收藏!...

Tomcat作为著名的Servlet容器实现以及轻量级Java应用服务器,是Apache软件基金会的顶级项目。它开源、轻量,与JBoss、Weblogic 等企业级应用服务器相比,占用资源小,扩展性好,深受Java研发人员喜爱,尤其是在当前主流的基于POJO ( Without EJB )的轻量级编程方式下构建应用系统。除此之外,Apache Tomcat还可以很容易与Apache Htp Ser...

weixin_39605345的博客 214

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

在WebLogic Server上驯服JMX

让我们先假设几件事: 我假设您听说过Java的JMX功能并熟悉它的功能(远程公开和管理您的服务)。 您应该知道默认JVM将具有一个可以注册MBean的Platform MBeanServer实例。 您可以使用JDK中的jconsole命令查看它们。 到目前为止,我认为到目前为止,可以将应用程序中的任何服务公开给JMX MBeanServer的最简单方法是使用Spring的导出器。 ...

最佳 Java 编程 469

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

通过JMX监控weblogic服务

一、JMX简介   JMX是一种JAVA的正式规范,它主要目的是让程序有被管理的功能,那么怎么理解所谓的“被管理”呢?试想你开发了一个软件(如WEB网站),它是在24小时不间断运行的,那么你可能会想要“监控”这个软件的运行情况,比如收到了多少数据,有多少人登录等等。或者你又想“配置”这个软件,比如现在访问人数比较多,你想把数据连接池设置得大一些。   当然,你也许会专门为这些管理来开发软件...

lipeng的博客 1204
上一篇: 微软、Java阵营 无线装置平台上短兵相接
下一篇: CN-JAVA开源中心简介
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值