今天試了一下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,這樣無法動態伸縮,這個問題目前還未解決。