使用java VisualVM监控JVM(Docker容器版)

7 篇文章 0 订阅

这里使用windows上JDK提供的java VisualVM来监控centos7上用docker部署的java项目的jvm

(1)我们使用Dockerfile部署的项目,只需要在Dockerfile中加入部分启动参数即可开启远程监控,完整的Dockerfile如下

#基础镜像java
FROM openjdk:8
#将jar包添加到容器中, 
ADD /histor-server-0.0.1-SNAPSHOT.jar //
##容器启动之后执行的命令
EXPOSE 8080
EXPOSE 9090
ENTRYPOINT ["java", "-jar", \
"-Xms2024m","-Xmx2024m", \
"-Xmn1024m", \
"-XX:+PrintGCDetails", \
"-XX:+PrintGCTimeStamps", \
"-XX:+HeapDumpOnOutOfMemoryError", \
"-XX:HeapDumpPath=/opt/infosec/cssp", \
"-Xloggc:/opt/infosec/cssp", \
"-Djava.rmi.server.hostname=10.7.35.12", \
"-Dcom.sun.management.jmxremote.rmi.port=9090", \
"-Dcom.sun.management.jmxremote=true", \
"-Dcom.sun.management.jmxremote.port=9090", \
"-Dcom.sun.management.jmxremote.authenticate=false", \
"-Dcom.sun.management.jmxremote.ssl=false", \
"-Dcom.sun.management.jmxremote.local.only=false", \
"/XXXX.jar"]

(2)此时还需要在/etc/hosts  中加入你的主机名,不然启动容器会报错,如图加入了centos7主机名,每个人的主机名不同,须通过hostname命令查看。

(3)使用dockerfile构建好镜像后,启动时设置-p将9090端口映射到主机

docker run -p 8080:8080 -p 9090:9090 ........

(4)开启防火墙的9090端口

firewall-cmd --zone=public --add-port=9090/tcp --permanent
firewall-cmd --reload

(5)在VisualVm的远程下添加远程主机,输入IP,然后在远程主机中添加JMX连接。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值