如給tomcat添加jmx。
添加位置見:https://www.cnblogs.com/augus007/articles/9018127.html
##添加jmx參數
```
普通類型:
CATALINA_OPTS="/ -Dcom.sun.management.jmxremote.rmi.port=9090 / -Dcom.sun.management.jmxremote=true / -Dcom.sun.management.jmxremote.port=9090 / -Dcom.sun.management.jmxremote.ssl=false / -Dcom.sun.management.jmxremote.authenticate=false / -Dcom.sun.management.jmxremote.local.only=false / -Djava.rmi.server.hostname=192.168.99.100" #直接寫物理機地址就行
特殊類型:
ENV CATALINA_OPTS="/ #為什么要加env,不知 -Dcom.sun.management.jmxremote.rmi.port=9090 / -Dcom.sun.management.jmxremote=true / -Dcom.sun.management.jmxremote.port=9090 / -Dcom.sun.management.jmxremote.ssl=false / -Dcom.sun.management.jmxremote.authenticate=false / -Dcom.sun.management.jmxremote.local.only=false / -Djava.rmi.server.hostname=192.168.99.100" EXPOSE 8080 #這下面的內容不懂 EXPOSE 9090 ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /app.jar
```
>其中ava.rmi.server.hostname為docker的地址
>注意,千萬設置jmx時不要使用JAVA_OPTS此參數,應當用CATALINA_OPTS 。因為tomcat可能通過JAVA_OPTS配置了jvm的參數,如果再設置成為JAVA_OPTS會將jvm參數覆蓋掉
#添加了以上內容后,啟動tomcat所在的docker,
docker run -d -p 80:8080 -p 9090:9090 --volume="/catalina.sh:/opt/tomcat/bin/catalina.sh" --name=tomcat docker.io/consol/tomcat-7.0
#80端口是tomcat的服務映射端口
#9090端口是為了映射tomcat的jmx啟動的端口
#--volume 是為了將物理機中的catalina.sh(即:我們手動更改過的文件)映射到docke中去、
##jvisualvm
本地命令行敲入jvisualvm打開
- 添加遠程機器
192.168.99.100
- 添加jmx連接
192.168.99.100:9090
不要求SSL連接
##查看mbean
添加插件VisualVM-MBeans
##參考文檔####
- [Monitoring Java Applications Running Inside Docker Containers](http://www.jamasoftware.com/blog/monitoring-java-applications/)
如果你嫌棄上面方法麻煩,通過你的docker又是通過k8s進行集群管理,你可能需要尋求別的方法:
借助jenkins進行參數配置
具體配置方法參考:jmx 遠程監控tomcat