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吗(测试了一下,就这个可以)?
谢谢各位大牛!!!