首先JConsole这个是JDK里面自带的工具 在JAVA_HOME/bin目录下,今天主要测试远程监控JVM
第一步:设置好需要远程机器的Tomcat
修改Tomcat下的配置文件:
/usr/local/apache-tomcat/bin/catalina.sh
在 文件中找到----- Execute The Requested Command --这一行,在这一行上面设置如下代码:
if [ "$1" = "start" ];then
echo "Jmx console Start!"
JAVA_OPTS="$JAVA_OPTS
-Djava.rmi.server.hostname=192.168.0.194
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
else
echo "shutdown tomcat"
fi
说明:当tomacat执行./shutdown.sh时提示端口被占用,原因是在关闭Tomcat时,也执行了Catalish中的jmxremote的端口号,所以在添加判断语句(if语句)
//注意中间没有换行,这是一条语句;hostname的IP为要监控的服务器的IP地址
第二步:配置完成后重启Tomcat
/usr/local/apache-tomcat/bin/shutdown.sh //关闭Tomcat
/usr/local/apache-tomcat/bin/startup.sh //重启Tomcat
查看配置的端口号是否启动
netstat -an| grep 12345
第三步:在Windows系统上打开Jconsole
C:\Program Files\Java\jdk1.8\bin\Jconsole.exe //根据自己实际路径查找,打开后如下图:
选择远程进程,这里有两种连接方式,这里选择第一种IP:<port>的方式,如下图:
配置完成后点击连接,会有一条提示,这里我们选择以不安全的方式连接即可,最后如下图:
!!注意:如果开启了防火墙需要添加规则
-A INPUT -s 192.168.1.0/24 -d 192.168.1.0/24 -p tcp -m tcp --dport 1024:65535 -j ACCEPT
因为连接jvm随机开端口连接,所以需要添加1024-65535端口开放