Docker VisualVm 通过 JMX 连接远程监控 docker 下 Tomcat,遇到问题记录下

jwang · 2023年06月02日 · 4223 次阅读

VisualVm 通过 JMX 连接远程监控 docker 下 Tomcat

配置中为何要加入 -Dcom.sun.management.jmxremote.rmi.port=11199?
参考资料:https://blog.csdn.net/niemingming/article/details/81302960
jmx 参考资料:https://blog.csdn.net/caomiao2006/article/details/51589836JMX 实践-JMX 连接端口)

配置如下:
方法一:在 catalian.sh 中加入配置
1.需要将 catalian.sh 文件从 docker 映射出来
2.在配置文件中加入配置:

  • JAVA_OPTS="-Dcom.sun.management.jmxremote.rmi.port=9008 -Dcom.sun.management.jmxremote.port=9008 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=172.168.1.101" docker-compose 文件如下:

遇到问题,配置完并启动后,发现在客户端中 telnet 缺怎么也连不上:

telent 172.168.1.101 9008

1.先判断 9008 端口对应的进程是否启动?

netstat -anlp | grep 9008

2.判断端口是否开放,或者查看防火墙的状态是否是关闭的?(inactive:关闭,active:打开)

systemctl status firewalld.service

经过以上判断发现都没有问题,但为什么 telnet 就是连不上?
后来猜想是不是端口在 nginx 服务中映射出来,而监听是 tomcat 服务,于是将修改 docker-compose.yml 配置,将端口映射放到 tomcat 服务中,配置如下

重启服务连接 Success

二、当然还有更简单的方法,来配置监听,不用映射和修改 catalian.sh 文件,只需要在 docker-compose.yml 中加入” environment“属性,然后将配置加进去,配置如下:

三、结论
虽然东西都比较简单,但记录下,避免后续走坑!

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册