Jmx协议远程连接java服务器

注意:本例里,我用的是jdk17

通常用jdk自带的jconsole,或者想要功能强大点的使用visualVM

需要java服务器在启动的时候加上以下参数

复制代码
-Dcom.sun.management.jmxremote
启用jxm远程连接

-Djava.rmi.server.hostname=10.1.3.99
指定jxm监听地址,本机ip或者域名都可以

-Dcom.sun.management.jmxremote.port=3214
指定jxm监听端口

-Dcom.sun.management.jmxremote.ssl=false
不需要ssl连接

-Dcom.sun.management.jmxremote.authenticate=false
不需要验证

为了安全考虑,可以加上验证

复制代码
-Dcom.sun.management.jmxremote.authenticate=true
需要验证用户名密码

-Dcom.sun.management.jmxremote.access.file=$JAVA_HOME/conf/management/jmxremote.access
用户配置文件

-Dcom.sun.management.jmxremote.password.file=$JAVA_HOME/conf/management/jmxremote.password
用户密码配置文件

上面两个配置文件,通常在jdk目录下,不同版本对应查找一下
#ll $JAVA_HOME/conf/management
jmxremote.access
jmxremote.password.template
management.properties

#cat jmxremote.access
上面一堆注释。。。
monitorRole   readonly
controlRole   readwrite \
              create javax.management.monitor.*,javax.management.timer.* \
              unregister

#cp jmxremote.password.template jmxremote.password
#vim jmxremote.password
把下面两行的注释去除(并且行首不能有空格),这就是jmx默认的两个用户名和密码,例如monitorRole用户、密码是QED
monitorRole  QED
controlRole  R&D

#chmod 600 jmxremote.password
一定要设置这个权限,不然运行会报密码文件不安全的错误

java服务端的配置完成了,可以启动客户端连接试试了

用jconsole举例

连接--》新建连接--》远程连接--》输入hostname:port,如果启用了用户验证,还要输入用户名、口令--》连接--》选择"不安全的连接"--》操作完成

相关推荐
isfox9 分钟前
与传统累加器对比,LongAdder 为何如此出众?
java
唐僧洗头爱飘柔952714 分钟前
(云计算HCIP)HCIP全笔记(九)本篇介绍操作系统基础,内容包含:操作系统组成、分类和定义,Linux的特性结构和Linux版本分类
linux·笔记·华为云·云计算·hcip·openeuler·操作系统概述
只因从未离去18 分钟前
黑马Java基础笔记-4
java·开发语言·笔记
kurer19 分钟前
Java通配符深入理解
java
会功夫的李白19 分钟前
PDF嵌入隐藏的文字
java·pdf·itext
小钊(求职中)32 分钟前
ElasticSearch从入门到精通-覆盖DSL操作和Java实战
java·大数据·elasticsearch·搜索引擎·全文检索
电鱼智能的电小鱼36 分钟前
EFISH-SBC-RK3588 —— 厘米级定位 × 旗舰算力 × 工业级可靠‌
linux·人工智能·嵌入式硬件·边缘计算
席万里37 分钟前
Go语言企业级项目使用dlv调试
服务器·开发语言·golang
yuanlaile1 小时前
Go全栈_Golang、Gin实战、Gorm实战、Go_Socket、Redis、Elasticsearch、微服务、K8s、RabbitMQ全家桶
linux·redis·golang·k8s·rabbitmq·gin
极客智谷1 小时前
深入理解Java线程池:从原理到实战的完整指南
java·后端