jmx的入门准备工作??

神奇宛宛 2024-05-24 02:44:48
最佳回答
jmx学**结 1.产生背景要了解 jmx,我们就必须对当前的 it 管理系统有一个初步的了解。随着企业 it 规模的不断增长,it 资源(it resource)数量不断增加,it 资源的分布也越来越分散。可以想象,甚至对于一家只有几百台 pc 公司的 it 管理人员来说,分发一个安全补丁并且保证其在每台 pc 上的安装,如果只依赖人工来完成那简直就是一场噩梦。这样,it 管理系统就应运而生。然而,cpu、网卡、存储阵列是 it 资源;os、ms office、oracle database、ibm websphere 也是 it 资源。it 管理系统若要对这些 it 资源进行管理,就必须对这些管理对象有所了解:形形**的 it 资源就像是说着不同语言的人:oralce 数据库表达内存紧张的方式和 window xp 是绝然不同的, 而 it 管理系统就像建造通天塔的经理,必须精通所有的语言, 这几乎是一个不可能完成的任务。2.jmx(j**a management extensions,即j**a管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。jmx可以跨越一系列异构操作系统**、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。3.4.框架结构图 1. 管理系统构架上图分析了管理系统的基本构架模式。其中 agent / subagent 起到的就是翻译的作用:把 it 资源报告的消息以管理系统能理解的方式传送出去。为什么需要 agent 和 subagent 两层体系呢?这里有两个现实的原因:管理系统一般是一个中央控制的控制软件,而 subagent 直接监控一些资源,往往和这些资源分布在同一物理位置。当这些 subagent 把状态信息传输到管理系统或者传达管理系统的控制指令的时候,需要提供一些网络传输的功能。 管理系统的消息是有一定规范的,消息的翻译本身是件复杂而枯燥的事情。一般来说,管理系统会将同一物理分布或者功能类似的 subagent 分组成一组,由一个共用的 agent 加以管理。在这个 agent 里封装了 1 和 2 的功能。jmx 和管理系统jmx 既是 j**a 管理系统的一个标准,一个规范,也是一个接口,一个框架。图 2 展示了 jmx 的基本架构。图 2. jmx 构架 jmx 是管理系统和资源之间的一个接口,它定义了管理系统和资源之间交互的标准。 j**ax.management.mbeanserver 实现了 agent 的功能,以标准的方式给出了管理系统访问 jmx 框架的接口。 j**ax.management.mbeans 实现了 subagent 的功能,以标准的方式给出了 jmx 框架访问资源的接口。 从类库的层次上看,jmx 包括了核心类库 j**a.lang.management 和 j**ax.management 包。 j**a.lang.management 包提供了基本的 vm 监控功能, j**ax.management 包则向用户提供了扩展功能。图 3 jmx 的操作模型5.概念>>>> mbeanmanaged bean的简称,是一个被管理的j**a对象,在jmx中mbean代表一个被管理的资源(设备,应用程序等)实例。通过操作mbean暴露一系列方法和属性来操作资源。mbean包含4种类型的mbean1.standard mbeans标准mbeans的设计和实现是最简单的,mbean接口中定义需要暴露的属性和操作,约定mbean接口名字后添加后缀mbean,例如namembean.j**a,实现类名称 name.j**a2.dynamic mbeans动态mbeans 在运行期暴露自己的管理接口,mbean实现类需要实现一个特定的接口dynamicmbean。接口中的方法用来动态获取mbean的属性和方法方法如图:3.open mbean open mbean也是一种dynamic mbeans,实现dynamicmbean接口。与dynamicmbean 不同的是 open mbean使用了几种预定义的数据类型提供了更复杂的metadata数据。 open mbean和dynamic mbean的区别在于是否返回openmbean**,它是mbean**的子类4.model mbean model mbean也是一种dynamic mbeans,它是预制的、通用的和动态的 mbean 类,已经包含了所有必要缺省行为的实现,并允许在运行时添加或覆盖需要定制的那些实现,jmx规范规定该类必须实现为j**ax.management.modelmbean.requiredmodelmbean,模型管理构件具有以下新的特点: 1)持久性 定义了持久机制,可以利用j**a的序列化或jdbc来存储模型mbean的状态。 2)通知和日志功能 能记录每一个发出的通知,并能自动发出属性变化通知。 3)属性值缓存 具有缓存属性值的能力mbeanserver mbeanserver是mbean 的容器。mbeanserver管理这些mbean,并且通过代理外界对它们的访问。mbeanserver提供了一种注册机制,通过注册adaptor和connector,以及mbean到mbeanserver,并且通过代理外界对它们的访问。外界可以通过名字来得到相应的mbean实例。jmx agentagent只是一个j**a进程,它包括这个mbeanserver和一系列附加的mbeanservice。当然这些service也是通过mbean的形式来发布。jmx agent通过各种各样的adapter和connector来与外界(jvm之外)进行通信。jmx agent可以包含各种不同的协议适配器和连接器连接器 connector连接器是可以连接mbeanserver,并使远程的j**a client可以访问该服务。连接器包含 客户端连接器(connector client)和服务器连接器(connector server).服务器连接器链接mbean server 和 **客户端的连接请求。客户端连接器任务是查找connector server服务并建立连接。client 和server通常在不同机器的不同jvm中。mx remote api 定义了标准的连接器 rmi connector,它通过 rmi 提供了对 mbeanserver 的远程访问。 使用 rmi 将客户端请求传输到远程 mbean 服务器。mx remote api 还定义了一个可选协议,名为 jmxmp(jmx 消息协议)。jmxmp 基于 tcp 连接上的序列化 j**a 对象(在可选包 j**ax.management.remote.** 中定义)。实现此协议的连接器称为 jmxmp connector。也可以使用 jmxconnectorfactory 提供的用户定义的连接器协议和可选的通用连接器rmi connector 使用 rmi 将客户端请求传输到远程 mbean 服务器,rmi connector支持 rmi 的 jrmp(默认)和 iiop 传输方式。连接器地址服务器生成的连接器地址 service:jmx:rmi://host:port 返回如下所示的 jmxserviceurl:service:jmx:rmi://host:port/stub/xxxx service:jmx:iiop://host:port 返回如下所示的 jmxserviceurl:service:jmx:iiop://host:port/ior/ior:xxxx基于目录条目的连接器地址 service:jmx:rmi://host:port/jndi/jndi-name service:jmx:iiop://host:port/jndi/jndi-namehost 和 :port 均可忽略。service:jmx:rmi://ignoredhost/jndi/rmi://myhost/myname第一个 rmi: 指定 rmi 连接器,第二个 rmi: 指定 rmi 注册表service:jmx:iiop://ignoredhost/jndi/ldap://dirhost:9999/cn=th**,ou=that其中ldap://dirhost:9999/cn=th**,ou=that 表示 ldap 目录中的 cn=th**,ou=that 条目,该目录在运行主机 dirhost 的端口 9999 上。协议适配器 adapter协议适配器通过特定的协议提供了一张注册在mbean服务器的管理构件的视图。例如,一个html适配器可以将所有注册过的管理构件显示在web 页面上。不同的协议,提供不同的视图。adapter和connector的区别在于:adapter 是使用某种协议(http或者snmp)来与jmx agent获得联系,agent端会有一个对象(adapter)来处理有关协议的细节。比如snmp adapter和http adapter。connector 在agent端和client端都必须有这样一个对象来处理相应的请求与应答。比如rmi connector。rmi remote method invocation 的简称,rmi是面向对象的远程调用, rmi采用jrmp(j**a remote method protocol)通讯协议,是构建在tcp/ip协议上的一种远程调用方法。rmi 允许一个对象使其方法调用对驻留在其它虚拟机,甚至其它主机上的对象可用。rmi调用机制 -----rmi 采用stubs 和 skeletons 来进行远程对象(remote object)的通讯。stub 充当远程对象的客户端代理,有着和远程对象相同的远程接口,远程对象的调用实际是通过调用该对象的客户端代理对象stub来完成的。 对于jndi技术,所有的可用服务信息都将注册在jndi服务器,让客户端通过rmi机制调用应用程序服务器远程接口时,应用程序服务器就会根据jndi 服务器的服务注册信息定位到相应的服务提供连接,等待应用程序服务器与后台服务器连接形成之后,jndi将不再参与到连接当中(jndi可以理解为注册服 务提供)ldap osl x.500目录是基于osi网络协议的目录服务协议 ,500的缺点是不支持tcp/ip,而是支持osi协议 , 在此前提下,也就产生了访问x500目录的**--ldap . ldap(lightweight directory access protocal, 轻型目录访问协议),是针对以x500目录为主的目录服务的前端访问协议,是osl x.500目录访问**. ldap就被设计成使用tcp/ip访问osi 目录服务的服务协议,而随着互联网成为网络的主流,ldap也成为一个具备目录的大部分服务的协议。 ldap主要解决目录服务的前端访问形式,而不是对 目录服务本身制定的的协议,理论上,ldap支持后台的任何存储形式,包括x500,关系数据库,文本数据库或文件目录等。ldap继承了x500目录的 大部分定义,无论是访问样式还是语法都与x500相似。jinijini( j**a intelligent network infrastructure)是一个主动的、响应式的分布式基础结构,它提供了在分布式环境中进行服务的建立、查找、通讯和调用的一整套机制。jini系统架构httphttp协议(hypertext transfer protocol,超文本传输协议)是用于从www服务器传输超文本到本地浏览器的传送协议。internet的基本协议是tcp/ip协议,然而在tcp/ip模型最上层的是应用层(application layer),它包含所有高层的协议。高层协议有:文件传输协议ftp、电子邮件传输协议smtp、域名系统服务dns、网络新闻传输协议nntp和 http协议等snmpsnmp(simple network management protocol,简单网络管理协议)>>>> 实现的协议适配器和连接器当前已经实现的协议适配器和连接器包括: 1)rmi连接器 2)snmp协议适配器 3)iiop协议适配器 4)html协议适配器 5)http连接器jmx 标准提供了四种不同的 mbean:standard mbean 直接实现用于管理对象的方法,既可以通过实现一个由程序员定义的、类名以 “mbean” 结束的接口,也可以使用一个以一个类作为构造函数参数的 standard mbean 实例,加上一个可选的接口类规范。这个接口可以开放用于管理的部分对象方法。 dynamic mbean 用属性访问器动态地访问属性,并用一个一般化的 invoke() 方法调用方法。可用的方法是在 mbean** 接口中指定的。这种方式更灵活,但是不具有像 standard mbean 那样的类型安全性。它极大地降低了耦合性,可管理的 pojo(纯粹的老式 j**a 对象)不需要实现特定的接口。 model mbean 提供了一个改进的抽象层,并扩展了 dynamic mbean 模型以进一步减少对给定实现的依赖性。这对于可能使用多个版本的 jvm 或者需要用松散耦合管理第三方类的情况会有帮助。dynamic mbean 与 model mbean 之间的主要区别是,在 model mbean 中有额外的元数据。 open mbean 是受限的 model mbean,它限制类型为固定的一组类型,以得到最大的可移植性。通过限制数据类型,可以使用更多的适配器,并且像 smtp 这样的技术可以更容易适应 j**a 应用程序的管理。这种变体还指定了数组和表等标准结构以改进复合对象的管理。 如 果要同时控制客户机和服务器,那么 standard mbean 是最容易实现的一种变体。它们的优点是有类型,但是如果在更一般化的管理控制台环境中使用时会缺少一些灵活性。如果计划使用 dynamic mbean,那么您也可以更一步使用 model mbean,在大多数情况下它会改善抽象层而几乎不会增加复杂性。open mbean 是是可移植性最高的一种变体,如果需要开放复合对象,那么它是惟一的方法。不幸的是,在 open mbean 中开放复合结构所需要的代码数量过多,只有在需要高级的商业管理解决方案时才合算。jmx 还支持使用带过滤器和广播器的事件模型的通知。为此目的,standard mbean 需要声明一个 mbean** 元数据描述。 standard mbean 实现通常在内部构造这些内容,开发人员不能直接看到它们。在本文后面,您会看到如何用 model mbean 元数据的 xml 描述符格式和 spring 的 jmx 支持进行实际上透明的配置。>>>>使用 mbean 的过程1.创建一个 mbserver:mbeanserve2.获得管理资源用的 mbean:serverbean3.给这个 mbean 一个 objectname:servermbeanname4.将 serverbean 以 servermbeanname 注册到 mbeanserver 上去>>>>通知机制要让mbean能发出通知,mbean必须实现接口notificationbroadcaster或它的子接口notificationemitter.发送通知时要做的是构建j**ax.management.notification类的实例或notification 的子类,然后以参数形式传递这个实例到notificationbroadcastersupport.sendnotification.方法中>>>>jmx 代理内幕揭示了典型 jmx 代理的内部构造。请注意,代理内部的四种主要组件是 mbean 服务器、一组代理服务、连接器和协议适配器以及定制代理逻辑。mbean 服务器mbean 服务器是代理内部的核心组件。所有 mbean 在可以通过远程应用程序访问之前都必须向 mbean 服务器注册。当使用 mbean 服务器时,通过唯一的对象名对已注册的 mbean 进行寻址。远程管理器应用程序(或分布式服务)只能通过 mbean 的管理接口(已公开的属性、操作和事件)发现和访问 mbean。代理服务代理还提供了一组代理服务,定制代理逻辑可以使用它们在 mbean 服务器中对已注册的 mbean 进行操作。为了符合 jmx 1.1,这些服务是必需的 ―所有代理都必须提供它们。 有趣的是,可以用 mbean 本身的形式实现这些服务。以 mbean 的形式实现服务有几个优点:可以通过 manager 组件或 ems 远程访问该服务的操作。 通过从远程管理器应用程序进行访问,ems 可以远程地管理服务本身。 可以通过下载 mbean 在运行时动态地执行服务逻辑的更新。 表 3 显示了 jmx 1.1 规范中定义的一组代理服务。表 3. jmx 1.1 所需的代理服务m-let 或管理 applet 服务 支持跨网络从 url 位置装入动态类(请参阅 j**ax.management.loading.mletmbean 和相关联的类/接口)。 **服务 将代价高昂的远程轮询操作转换成本地操作;监控 mbean 属性的特定更改并在观察到更改时发送事件。 计时器服务 经历了指定的时间量后发送事件,或以指定时间间隔定期发送事件(请参阅 j**ax.management.monitor.monitormbean 和相关的类/接口)。 关系服务 支持 mbean 之间的关系定义,并强制关系的完整性(请参阅 j**ax.management.relation.relationservicembean 和相关的类/接口)。 增值代理逻辑增值代理逻辑通常是编写的代码。它是能够提供本地化智能的定制代理逻辑,用来管理向该代理注册的 jmx 可管理资源。例如,如果我们有两个冗余的应用程序服务器群集,就可以创建定制代理,监控负载级别并且动态地将入站请求重定向到不同的群集 ― 通过对已注册的服务器的 mbean 进行操作。通常,nms 的供应商也会提供定制逻辑。一旦分布式服务的规范得以充实,可以预言,某种特定的定制代理逻辑将可以与定制远程 jmx 管理器组件良好地协作,以提供更高级别的网络管理功能。连接器和协议适配器代理不与分布式服务、nms 或其它管理应用程序直接通信。而是使用连接器和协议适配器。这种体系结构与 j2ee 连接器体系结构(j2ee connector architecture)是一致的(请参阅 参考资料)。协议适配器是一种软件组件,它通过标准化协议(如 http 和 snmp)提供对代理管理的资源的访问。连 接器是一种专用软件组件,它提供了到代理和/或该代理上的受管资源的远程接口(通常使用诸如 corba 或 rmi 这样的远程过程调用技术来完成 ― 为了安全性通常通过 ssl)。当代理有多个活动的连接器和协议时,可以通过多个异构的应用程序或 nms 同步地访问受管资源。可以用协议适配器来提供对现有的和已建立的 nms 的向后兼容性。例如,我们可以为支持这个标准的 nms 创建 通用信息模型/基于 web 的企业管理(cim/webm)适配器,或者可以创建 电信管理网络(tmn)协议适配器来启用由 jmx 代理管理的电信资源上的 操作、管理和维护(oam)。jmx 连接器和协议适配器的精确规范属于正在同时开发的规范的范畴(请参阅 参考资料)。>>>> 安全性到目前为止都还不错。现在是面对被甩在一边的重要问题 —— 安全性 —— 的时候了。不如果不想让谁的应用程序代码访问和修改虚拟机,该怎么办?有什么选项可用么? 可以设置一些系统属性,来控制访问级别和虚拟机数据从 jmx 代理向管理客户机传递虚拟机数据的方式。这些属性分成两类:口令认证 和安全套接字层(ssl)。使用命令行选项为了让 5.0 兼容的虚拟机可以被监视和管理,需要用以下命令行选项设置** jmx 代理的端口号:-dcom.sun.management.jmxremote.port=<number> 如果不介意谁通过这个端口访问虚拟机,也可以添加以下两个选项,关闭口令认证和 ssl 加密(这两项默认都是开启的):-dcom.sun.management.jmxremote.authenticate=false-dcom.sun.management.jmxremote.ssl=false 在开发 j**a.lang.management 客户机代码,而且想方便地监视另一台虚拟机时,一起使用这三个选项会很方便。在生产环境中,则需要设置口令控制或 ssl(或者两者都要设置)。口令认证在jdk 的 jre/lib/management 目录中,可以找到一个叫做 jmxremote.password.template 的文件。这个文件定义了两个角色的用户名和口令。第一个是监视 角色,允许访问只读的管理函数;第二个是控制 角色,允许访问读写函数。取决于需要的访问级别,客户可以用 monitorrole 或 controlrole 用户名进行认证。为了确保只有认证的用户才能访问,需要做以下工作:把 jmxremote.password.template 的内容拷贝到叫做 jmxremote.password 的文件中,并取消掉文件末尾定义用户名和口令部分的注释,根据需要修改口令。 修改 jmxremote.password 的许可,只让所有者能够读取和修改它。(在 unix 和 unix 类的系统上,把许可设置成 600。在 microsoft windows 上,请按照 “how to secure a password file on microsoft windows systems” 一文中的说明操作,可以在 参考资料 中找到这篇文章的链接。) 在启动虚拟机时,用以下命令行选项指定要使用的口令文件的位置: -dcom.sun.management.jmxremote.password.file=<file-path> 从管理客户的角度来说,需要提供正确的用户名/口令组合来访问开启了认证的虚拟机。如果客户是 jconsole,这很简单:在初始的 connection 选项卡中提供了用户名和口令字段 20210311
汇率兑换计算器

类似问答
  • 公司上市前的准备工作是什么?
    • 2024-05-24 11:53:10
    • 提问者: 未知
    通常来说 公司 会和自己同一领域的 上市公司 联系,并且取得一些投资者的意见。公司要尽量的给出一个概要框架,决定合作伙伴,并且确定上市所需时间...2020-06-19 155 人看过 ...
  • 企业上市前的准备工作
    • 2024-05-24 13:18:55
    • 提问者: 未知
    企业上市前的准备工作传递财税信息交流财税理念延控思维企业改制上市一般需要经过三个阶段:一是上市前的准备;二是上市申报;三是上市发行股票。在这三个阶段中,上市前的准备工作极为重要。从某种角度讲,这一阶段将是决定企业上市成功与否的关键。企业上市前的准备工作包括两个方面:即心理准备和实务准备。一、心理准备企业要想上市,控股股东和管理决策层首先得做好充分的心理准备。心理准备主要包括四个方面:第一必须有上市...
  • 公司上市前的准备工作是什么?
    • 2024-05-24 22:37:20
    • 提问者: 未知
    1、要做产品上市前备工作  一个产品的上市,之所做很准备工作。因为准备越充分,成功的可能性越大。除了前期新产品开发时要做好市场需求的研究;产品概念的开发和测试;产品包装、概念、价格等的设计;市场定位和沟通策略;广告创意及执行;各种宣传品的制作等等环节外,我们必须指出这些仅有的准备尚不足以保证新产品的成功上市,作为新产品的上市前还必须考虑准备一下工作:
  • 设备部门工作总结及工作规划
    • 2024-05-24 20:52:16
    • 提问者: 未知
    xxxx年xxxx部总结及xxxx年作规划部门:xxxxx部汇期:xxxx年xx月xx日第一部分:2017年度工作业绩阐述一、年度kpi指标达成2017年设备动力部在设备采购节点按期率、验收及时率、重大维修次数、节能降耗、技改项目5大方面kpi指标,经企管人力部验收,整体kpi指标达标(取自9-12月份数据)。二、主要工作业绩回顾(一)设备申购管理,通过流程制度体系建设,建立设备投资风险评估机制通...
  • 新手入门炒股票最低要准备多少?
    • 2024-05-24 11:24:15
    • 提问者: 未知
    每个股的价格不同钱不同,100多块一股的要一万多,2块一股的2000
  • 新股民入门需要哪些准备?
    • 2024-05-24 18:29:37
    • 提问者: 未知
    新股民入门需要:1.掌握基本术语名词2.了解券商基础信息和交易基础规则3.合理安排时间4.根据自己的资金合理安排5.保持良好的投资心态
  • 家装前期准备工作
    • 2024-05-24 01:17:16
    • 提问者: 未知
    首先应对自己的房结构要仔细了解,丈量一下实际面积并绘制详细的结构图。主要是了解一下具体布局(包括对原有结构进行合理更改)以及装修总费用(包括材料的价格和人工费用)可对自己的房屋如何...
  • 买房前要做哪些准备工作?
    • 2024-05-24 18:05:00
    • 提问者: 未知
    第一,明确购房需求,做好置业规划-“为什么要买房?“需要买什么样的房子?购房者尤其是首次置业者买房前,首先要问自己这两个问题,如果确实需要,那么就要提前做好置业...
  • 准备考研 什么工作适合
    • 2024-05-24 02:37:22
    • 提问者: 未知
    那最好还是找兼职的工作比较好,坐班的工作没有那种几个小时的,而且每天上下班你就很累了,回到家很难还能有足够的精力去复习,当然上不上班还是要根据楼主自己的经济情况来决定,个人感觉可以找那种不需要坐班,只需要在家就做的哪种兼职,最好是时间随意的哪种,这种兼职上网搜有很多。
  • 在外地工作,准备在
    • 2024-05-24 22:22:31
    • 提问者: 未知
    在外地工作,准备在重庆贷款买房,需要提供收入证明吗 华律网根据你的法律疑问精选多位律师优质答案。
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。