JMX::Jmx4Perl::Manual - Documentation for jmx4perl
JMX(Java Management Extensions) 是标准的管理解决方案。
由于JGK 1.5 是可用的在每个Java Virtual Machine尤其是JEE应用服务器使用该及时深入揭露管理实体。事实上,流行的JEE服务器JBoss 4是基于JMX的内核
对于Perl的世界,它是不容易访问JMX MBeans。 MBean是Java 术语用于JMX 管理实体。
现有的解决方案是基于Java standard JSR-160 (http://jcp.org/en/jsr/detail?id=160),
它定义了JMX可以远程访问。默认的通信协议依赖交换的序列化Java对象的。
jmx4perl的最终的目的是连接世界的最简单的方式。是用agent和proxy 基于下面描述的方法。
jmx4perl agent部分可以在www.jolokia.org找到,这个站点也包含所有的相关的文档用于建立代理在各种平台上,
即以下出发点是感兴趣的,当Jolokia 被用于jmx4perl
Overview of all Jolokia agents:
参考手册抱哈了详细的安装说明在不同的平台。
Jmx4Perl的客户端部分被包含在library和有一些Perl 模块组成用于程序访问。
jmx4perl 也用于简单的访问JMX MBeans和更多的从命令行,是一个好的起点。
MBean Features
JMX 是一个复杂的规范,它不能完整的显示在短的文档。
参考JMX是一个复杂的规范,它不能完全显示在这个简短的文件。参考http://java.sun.com/docs/books/tutorial/jmx/index.html
用于介绍JMX 总之, 可以区分三种操作模式:
属性的读和写:
MBean 可以有一个或多个属性,它可以被读或者昔日,jmx4perl 知道如何读和写MBean的属性。
操作的执行:
一个MBean可以显示某个操作,可以通过JMX 请求被执行用jmx4perl,JMX 操作可以被执行。
通知
听众可以注册得到通知用于某些通知通过MBeans。 这是不支持的通过jmx4perl
它的技术上是相当具有挑战性的,因为HTTP, 我们的传输协议,是一个典型的请求-响应基于协议
是单向的。 然而,已经有想法来克服这个限制,但不要屏住呼吸。
AGENT 基于的方法:
一种agent 基于方法需要你安装一个小的Java 应用,它注册它本身到本地的JMX MBeanServer
侦听HTTP请求,结果会被转换为JSON 表达式。 这个响应可以被很容易的拾起通过Perl模块,
JMX::Jmx4Perl在我们的例子。这种方法不同于传统方法,建议通过JMX 规范本身:
这种方法适用于以下环境:
JEE服务器在标准战格式的Web应用程序可以部署。
在Mule ESB作为专用的骡子剂可用于暴露jmx外面。
在OSGi容器代理被部署为一束。两变种有:一,这就需要安装OSGi HTTPService和一,这是一个嵌入式HTTP服务器。
对于每一个Java 6应用与太阳的运行(请原谅,Oracle)JVM,JVM级别代理可使用嵌入在每个Java 6 JDK的HTTP服务器的太阳。
除了这个限制有关的运行时环境,这种基于代理的方法也有很大的优势:
优势:
1.没有特殊的启动选项用于JEE server 是需要的用于显示JMX 信息,通过使用JSR-160 connectors输出。
客户端不需要安装Java对于使用agent,JVM启动没有开销
由于agent 是一个标准的Java Web应用程序可以通过标准JEE担保手段,像任何其他Web应用程序。
缺点:
agent只能部署在某个Java 运行容器(Servlet container,Mule Agent,OSGi container, every Java 6 appliction).
但是请阅读,即使你的runtime环境不适合,代理方法任意的Java 应用能连接到。
代理模式:
尽管agent 基于最简单的方式访问JMX,在有些情况下,防止专门的代理servlet的部署。
这种类型的限制可能是出于政治动机。 针对这些情况,jmx4perl 提供一个可操作的模式被称为代理模式
目标平台可以被监控在不安装j4p代理 servlet的情况下, 这里使用j4p.war 来作为JMX 代理,
传输我们的JSON/HTTP 协议在前台到JSR-160 JMX远端请求在后台,反之亦然。
一个专用的代理服务器是需要用于r hosting j4p.war, 迟滞agent模式以及代理模式。
一个轻量级包含像Tomcat或者Jetty 是最完美的选择。
安装Jetty(http://www.mortbay.org/jetty/) or Tomcat (http://tomcat.apache.org/)
利用j4p.war 从jmx4perl发布通告拷贝它到webapp目录。
启用远程JMX 通讯在目标平台, 请咨询你应用文档了解进一步的理解。
使用–target选项用于jmx4perl或者check_jmx4perl 在JMX 服务URL
(like service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi) 为了指定目标server,
使用proxy server的URL 作为agent URL:
jmx4perl http://localhost:8080/jolokia \
–target service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi list
安装:
Perl 的安装其他模块通过Module::Build, 你需要安装使用:
perl Build.PL
./Build
./Build test
./Build install
为了下载Jolokia WAR agent到你的本地目录作为jolokia.war, 使用下面的命令:
jolokia
agent “jolokia.war” 需要被部署在JEE Serversion来监控,请阅读 http://www.jolokia.org/agent.html ,如何安装agent
jmx4perl http://:/jolokia
http://120.55.18.32:8085/jolokia
Reading and Writing Attributes 读写属性;
Jmx4Perl 知道你读取任何属性和如何写某个属性对于那些类型是string-to-object 转换。
目前,对字符串类型,int,long和布尔值支持。作为一个特殊的工作。
执行JMX 操作:
这是很容易执行JMX操作, 即使有争论。然而, 这是很容易执行的JMX操作,即使有争论。然而,他们同样的参数类型限制为写属性:必须有反序列化参数从字符串表示一个简单的方法。支持写入属性的相同类型
Autodetection and Product Support: 认证检测和产生支持:
Jmx4Perl 是能够自动检测各种应用服务器, 这是通过查询某个MBean属性,是唯一的对于特定的产品。
很多应用服务器已经被测试来进行工作
事实上, Jmx4Perl 配备了一个测试套件。