JMX-Java Management Extensions
JMX全称Java Management Extensions, 为Java应用提供管理扩展功能。在Java 5的时候引入
概念
Name | Description |
---|---|
MBean | 全称为Managed Bean, 你可以实现一个MBean来JMX提供管理内容 |
MBean Server(也叫JMX Agent) | 提供集中注册管理MBean功能,允许远程通过他代理操作MBean |
JMX Connectors | 通过实现不同的通讯协议,来允许远程访问 |
Jconsole | 一款JMX图形客户端,运行用户访问本地或者远程的JMX,默认包含在Java SDK工具中 |
Referering Java Opts
启动Java可以赋予JVM Machine一些参数,例如设置运行内存堆栈的大小。此处列举一些有关JMX的相关参数
参数名 | 类型 | 描述 |
---|---|---|
-Dcom.sun.management.jmxremote | 布尔 | 是否支持远程JMX访问,默认true |
-Dcom.sun.management.jmxremote.port | 数值 | 监听端口号,方便远程访问 |
-Dcom.sun.management.jmxremote.authenticate | 布尔 | 是否需要开启用户认证,默认开启 |
-Dcom.sun.management.jmxremote.ssl | 布尔 | 是否对连接开启SSL加密,默认开启 |
-Dcom.sun.management.jmxremote.access.file | 路径 | 对访问用户的权限授权的文件的路径,默认路径JRE_HOME/lib/management/jmxremote.access |
-Dcom.sun.management.jmxremote. password.file | 路径 | 设置访问用户的用户名和密码,默认路径JRE_HOME/lib/management/ jmxremote.password |
例如,你需要启动一个常驻后台的springboot程序(比如app.jar),如何开启一个支持远程访问的JMX,可以尝试下面的命令
java -jar app.jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10080 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
对于关于JMX相关的参数你配置这些就够了,就可以使用Jconsole连接,
![](http://upload-images.jianshu.io/upload_images/2251071-e0b018814f18662b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
JDK自带的监控工具有:
1、jconsole
2、jvisualvm