JConsole 连接远程进程(JDK 8)
远程监控参数
启动 JVM 时添加以下参数以启用 JMX(Java Management Extensions)监控:
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=PORT_NUMBER -Dcom.sun.management.jmxremote.hostname=IP -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
PORT_NUMBER
是 JMX 监听的端口号(例如 9999)IP
是程序所在主机的 IP 地址(例如 192.168.88.128)-Dcom.sun.management.jmxremote.authenticate=false
和-Dcom.sun.management.jmxremote.ssl=false
用于禁用身份验证和 SSL(在生产环境中不推荐这样做,建议使用身份验证和 SSL)
注意确保防火墙放开对应 JMX 端口(如 9999)的入站连接。
启动 Java 应用程序
Java 应用程序使用上述参数启动。例如:
java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.hostname=192.168.88.128 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -jar your-application.jar
连接到远程地址
-
在 JConsole 启动后,选择“远程进程”选项。
-
输入远程主机的 IP 地址和 JMX 端口号,格式为:
hostname:PORT_NUMBER 例如:192.168.1.100:9999。
-
点击“连接”,尝试连接到指定的远程 Java 应用程序。
开启身份验证
JConsole 连接远程进程时有输入用户名和口令的入口,上面的配置没有开启校验,所以不需要输入。
可以使用如下参数来开启身份验证:
-Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=/path/to/jmxremote.password -Dcom.sun.management.jmxremote.access.file=/path/to/jmxremote.access
-Dcom.sun.management.jmxremote.authenticate=true
表示开启身份验证。-Dcom.sun.management.jmxremote.password.file=/path/to/jmxremote.password
表示身份验证信息文件为/path/to/jmxremote.password
。Dcom.sun.management.jmxremote.access.file=/root/test/jmxremote.access
表示权限控制文件为/path/to/jmxremote.access
。
jmxremote.password 文件
这个文件用于存储用户名和密码,格式如下:
username1 password1 username2 password2
示例:
admin secret123 user pass456
- 注意:该文件必须具有严格的权限设置,通常只允许文件所有者读取。可以使用以下命令设置权限:
chmod 600 /path/to/jmxremote.password
jmxremote.access 文件
这个文件用于定义不同用户的访问权限,格式如下:
# 用户名 权限 username1 readwrite username2 readonly
示例:
admin readwrite user readonly
在这个示例中,admin 用户具有读写权限,而 user 用户只有只读权限。
此时,使用 JConsole 连接对应进程时,需要输入用户名和密码。
参考:ChatGPT
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
2022-08-20 Markdown 本地图片快速上传到博客园