目录
- 基本用法
- 命令示例
- jconsole连接
- 新建连接
- 确认连接方式
- 查看监控信息
- jvisualvm连接
- 添加主机
- 增加JMX连接
- 查看监控信息
- 参数说明
- 基本参数
- jmxremote.access文件说明
- jmxremote.password文件说明
- 文件权限异常
- 无法验证
基本用法
命令示例
#参考命令
java -Dcom.sun.management.jmxremote.port=19015 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -jar xxx.jar
jconsole连接
新建连接
确认连接方式
如果启用ssl此确认提示将不出现
查看监控信息
jvisualvm连接
添加主机
增加JMX连接
查看监控信息
参数说明
基本参数
参数 | 说明 |
---|---|
-Djava.rmi.server.hostname=192.168.9.27 | jmx监听目标进程所在机器ip(本机IP),不指定时所有IP可用 |
-Dcom.sun.management.jmxremote.port=19015 | jmx通讯端口 |
-Dcom.sun.management.jmxremote.ssl=false | 是否启用ssl连接 |
-Dcom.sun.management.jmxremote.authenticate=false | 是否需要认证 |
-Dcom.sun.management.jmxremote.acccess.file=/data/jmxremote.access | 访问用户权限文件 |
-Dcom.sun.management.jmxremote.password.file=/data/jmxremote.password | 访问用户密码 |
jdk 8及之前: JRE提供的jmxremote.access和jmxremote.password文件默认位置在jre安装目录下的lib\management下
jdk 11之后: 默认位置在JDK 安装位置conf\management下
jmxremote.access文件说明
文件格式:
- 每行为一条配置
- 每条配置格式: 角色 访问级别类型
- 操作类型包括:
readonly :监控角色,权限为只读,只能查看JVM状态。
readwrite: 操作角色,允许访问MBean的读写属性,调用对它们的操作,并且可以选择以创建或删除它们。应授予此访问权限仅限于受信任的客户,因为他们可能干扰正在运行的程序的平稳运行。
create:跟在readwrite访问级别后面,创建特定类别或与特定模式匹配的任何类别。通道应仅被授权创建已知和可信类的MBea
unregister:跟在readwrite访问级别后面,授予注销权限(删除)MBean
文件内容示例:
monitorRole readonly
controlRole readwrite \
create javax.management.monitor.*,javax.management.timer.* \
unregister
jmxremote.password文件说明
文件格式:
- 每行为一条配置
- 每条配置格式: 角色 密码
- 仅建议修改密码操作
文件内容示例:
monitorRole QED
controlRole R&D
文件权限异常
密码文件只能由其所有者读取 具体要求可以查看jmxremote.password.template 中的注释
Windows下提示:
必须限制口令文件读取访问权限: D:/jmxremote.password
修改文件访问控制权限
cacls jmxremote.password /P 当前用户:R
Linux下的权限设置
chmod -R 600 jmxremote.password
chmod -R 600 jmxremote.access
无法验证
部分情况下按如上配置新角色及密码后无法正常验证,可考虑角色信息未生效,通过修改jmxremote.password 文件为monitorRole 、controlRole 这两个角色设置密码以绕过新增角色的坑
monitorRole newPwd
controlRole newpwd