jmx监控jvm

1,这边需要使用zabbix监控jvm,但是发现自带的模版很多都无法使用,关键很多指标也看的不是很懂,所以特来请教jmxclient的语法使用。

2,如下是个人总结的

jmxclient 故名思义 就是jmx客户端,主要用于连接jmx获取数据的终端



1,使用jmxclient工具获取jvm数据


a,查看jmx有哪些参数

#13080为jmx开启的端口,配置在catalina.sh中配置

java -jar cmdline-jmxclient-0.10.3.jar - 192.168.56.12:13080



b,查看jmx不同类别的参数

java -jar jmxcmd.jar  - 127.0.0.1:13080|grep 'java.lang' 

java -jar jmxcmd.jar  - 127.0.0.1:13080|grep 'Catalina' 



命令:java -jar jmxcmd.jar  - 127.0.0.1:13080|grep 'java.lang' 



输出如下结果: 
java.lang:type=Runtime
java.lang:name=MarkSweepCompact,type=GarbageCollector
java.lang:name=Compressed Class Space,type=MemoryPool
java.lang:type=Compilation
java.lang:type=ClassLoading
java.lang:name=CodeCacheManager,type=MemoryManager
java.lang:type=Memory
java.lang:name=Metaspace,type=MemoryPool
java.lang:name=Copy,type=GarbageCollector
java.lang:name=Eden Space,type=MemoryPool
java.lang:type=Threading
java.lang:name=Survivor Space,type=MemoryPool
java.lang:type=OperatingSystem
java.lang:name=Metaspace Manager,type=MemoryManager
java.lang:name=Code Cache,type=MemoryPool
java.lang:name=Tenured Gen,type=MemoryPool



命令:java -jar jmxcmd.jar  - 127.0.0.1:13080|grep 'Catalina' 



输出如下结果:
Catalina:port=8009,type=Connector
Catalina:host=localhost,name=AccessLogValve,type=Valve
Catalina:name="http-nio-8080",type=GlobalRequestProcessor
Catalina:type=Mapper
Catalina:type=NamingResources
Catalina:host=localhost,name=StandardHostValve,type=Valve
Catalina:realmPath=/realm0/realm0,type=Realm
Catalina:type=Service
Catalina:context=/,host=localhost,name=Cache,type=WebResourceRoot
Catalina:name="ajp-nio-8009",type=GlobalRequestProcessor
Catalina:type=MBeanFactory
Catalina:J2EEApplication=none,J2EEServer=none,j2eeType=WebModule,name=//localhost/
Catalina:port=8080,type=ProtocolHandler
Catalina:name=StandardEngineValve,type=Valve
Catalina:port=8009,type=ProtocolHandler
Catalina:realmPath=/realm0,type=Realm
Catalina:host=localhost,type=Deployer
Catalina:class=org.apache.catalina.UserDatabase,name="UserDatabase",resourcetype=Global,type=Resource
Catalina:type=Server
Catalina:context=/,host=localhost,type=WebResourceRoot
Catalina:type=StringCache
Catalina:name="ajp-nio-8009",type=ThreadPool
Catalina:port=8080,type=Connector
Catalina:host=localhost,name=ErrorReportValve,type=Valve
Catalina:host=localhost,type=Host
Catalina:name="http-nio-8080",type=ThreadPool
Catalina:type=Engine

3,问题
a, java.lang Catalina 这个在java中是什么?

b, 我如何知道某个参数的具体用法
比如:
上面可以看的到java.lang:name=Code Cache,type=MemoryPool 这个参数,这边可以通过

java -jar jmxcmd.jar - 127.0.0.1:13080 java.lang:name="Code Cache",type=MemoryPool Usage

的命令获取值,执行命令后的值:
09/13/2018 20:24:06 +0800 de.layereight.jmxcmd.Client Usage:
committed: 8650752
init: 2555904
max: 251658240
used: 8447296

但是请问其他的参数如何获取具体的值呢?难道都是Usage吗(测试了一下,就这个可以)?

谢谢各位大牛!!!

阅读 3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题