JMX::Jmx4Perl::Manual - Documentation for jmx4perl JMX::Jmx4Perl::Manual --文档用于jmx4perl
描述:
JMX(Java Management Extensions) Java 管理扩展 是标准的管理方案在Java 世界。
自从 JDK 1.5 它是可用的在每个Java 虚拟机和尤其是JEE 应用服务器 使用这个技术集中的用于
揭露管理实体对象。事实上,最流行的JEE Server JBoss 4 是基于JMX 内核。
对于Perl 的世界,它是不容易访问 JMX MBeans
MBean是Java 的术语用于JMX 管理实体。
存在的解决方法是大多数基于Java 标准的JSR-160 (http://jcp.org/en/jsr/detail?id=160),
定义了 JMX如何被远程访问。
JSR-160 的问题对Perl是,默认的通讯协议依赖 交换序列Java 对象。
因此 它们需要启动一个Java 虚拟机。
这个需要一些影响相关的安装需求(你需要一个Java虚拟机具有合适的版本)
jmx4perl 的终极目标是 桥接世界以最简单的方式。
这个是通过基于agent和proxy 基于方法描述如下。
Jmx4Perl 的客户端部分 是被包含在这个库, 有一组Perl模块组成用于程序访问 也用于命令行工具
MBean Features MBean的特点:
JMX 是一个复杂的规范, 不能被完全显示在这个短的文档里。
属性读和写一个MBean 可以有一个或者多个属性。
我们可以读和写 jmx4perl 知道如何读和写 MBean attributes.
操作的执行 :
一个 MBean 可以 为某些操作,可以被包含通过JMX 请求 使用jmx4perl
Notifications:
听众可以登记得到通知用于某个通知通过MBeans。
这个没有被支持通过jmx4perl 它在技术上是相当有挑战的,因为HTTP
我们的传输协议,是一个典型的 请求-响应基于协议
基于AGENT 代理的方法:
一个基于agent的方法需要你安装一个小的Java Webapplication 在你的JEE 应用服务器,
它将自己注册到本地的JMX MBeanServer,
侦听到HTTP 骑牛 结果是返回一个JSON表现。
这种方法适用于下面环境:
1. JEE Servers 一个应用服务器在标准的WAR格式可以被部署
2.对于Mule ESB 作为专用的Mule agent 可以被用于揭露JMX到外边
3.对于每个Java 6应用运行Sun的JVM,一个JVM层面的agent是可用的 使用内嵌的HTTP SERVER
除了这个限制有关的运行环境,这个agent 基于方法有相当的优势:
Advantages
1.没有指定启动项对于JEE server 是需要用于暴露JMX 信息
2.No Java 安装需要在客户端用于使用agent
3.因为 agent 是一个标准Java Webapplication 可以是安全的通过标准的 JEE
Disadvantages
agent 可以只能部署到每个Java运行容器
安装:
Perl 部分安装和其他很多模块通过Module::Build, 需要被安装 使用:
perl Build.PL
./Build
./Build test
./Build install
会安装模块。
为了下载Jolokia WAR agent到本地的目录作为jolokia.war,使用下面的命令:
这个agent "jolokia.war" 需要被部署到JEE Server 来监控。
jmx4perl http://<jeeserver>:<port>/jolokia
wget http://repo1.maven.org/maven2/org/jolokia/jolokia-war/1.2.3/jolokia-war-1.2.3.war
mv jolokia-war-1.2.3.war jolokia.war
java 启动脚本:
centos6.5:/usr/local/apache-tomcat-8.5.11/logs#curl 127.0.0.1:8080/jolokia/version
{"request":{"type":"version"},"value":{"agent":"1.2.3","protocol":"7.2","config":{"maxCollectionSize":"1000","agentId":"local-8741-35e495df-servlet","debug":"false","agentType":"servlet","serializeException":"false","detectorOptions":"{}","dispatcherClasses":"org.jolokia.jsr160.Jsr160RequestDispatcher","maxDepth":"15","discoveryEnabled":"false","canonicalNaming":"true","historyMaxEntries":"10","includeStackTrace":"true","maxObjects":"0","debugMaxEntries":"100"},"info":{"product":"tomcat","vendor":"Apache","version":"8.5.11"}},"timestamp":1489474190,"status":200}centos6.5:/usr/local/apache-tomcat-8.5.11/logs#
Vsftp:/root# jmx4perl http://192.168.11.185:8080/jolokia
Name: Apache Tomcat
Vendor: Apache
Version: 8.5.11
--------------------------------------------------------------------------------
Memory:
Heap-Memory used : 43 MB
Heap-Memory alloc : 393 MB
Heap-Memory max : 393 MB
NonHeap-Memory max : 0 MB
Classes:
Classes loaded : 3130
Classes total : 3130
Threads:
Threads current : 27
Threads peak : 27
OS:
CPU Arch : amd64
CPU OS : Linux 2.6.32-431.el6.x86_64
Memory total : 276 MB
Memory free : 276 MB
Swap total : 4031 MB
Swap free : 3901 MB
FileDesc Open : 79
FileDesc Max : 4096
Runtime:
Name : 8741@localhost
JVM : 25.20-b23 Java HotSpot(TM) 64-Bit Server VM Oracle Corporation
Uptime : 1 m, 30 s
Starttime : Tue Mar 14 14:49:07 2017
FEATURES:
读和写属性:
Jmx4Perl 知道如何读取任何属性和如何写某些属性对于那些类型是字符串到对象转换。
当前,属性类型写是String,int,long和boolean 是被支持的。
Execution of JMX operations
这是很容易执行的JMX操作, 即使有参数。