今天试了一下jconsole远程监控docker容器中的tomcat工程:
在tomcat/bin/catalina.sh中修改
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.141.129 (服务器ip)
-Dcom.sun.management.jmxremote.port=3838
-Dcom.sun.management.jmxremote.rmi.port=3838</span>
-Dcom.sun.management.jmxremote.ssl=false (是否使用ssl 验证,通常为false)
-Dcom.sun.management.jmxremote.authenticate=true (是否需要校验连接用户)
-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password (连接用户配置文件)
-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access"(连接用户配置文件)
-Djava.rmi.server.hostname必须要配置为服务器ip,否则端口可以Telnet通jconsole是连接不上的。
上述配置经过测试是通过的,但是我的docker要做成动态伸缩的,使用docker service create 生成节点后才能生成IP,这样-Djava.rmi.server.hostname就不能写死。查了好多资料都是需要设定hostname,这样无法动态伸缩,这个问题目前还未解决。