jconsole 监控上tomcat

-------------Jconsole监视远程的linux服务器上的tomcat ----------------------------- 

一、编辑tomcat/bin/catalina.sh

#cd /usr/local/tomcat/tomcat1/bin     自己tomcat/bin的目录下

#vi catalina.sh

在其中“

# ----- Execute The Requested Command -----------------------------------------”

之前插入新的一行(中间没有换行),内容如下:

CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=192.168.1.17 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

这里的红色标识部分:hostname是tomcat所在服务器IP,port是监控端口(这里可自行配置,不和其他进程冲突就行) 

参数解析:

#服务器IP,因为是远程监控,所以需要配置
-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx
#远程监控端口
-Dcom.sun.management.jmxremote.port=9999 
#匿名登录,设置false
-Dcom.sun.management.jmxremote.authenticate=false 
#不使用SSL
-Dcom.sun.management.jmxremote.ssl=false 

二、编辑jmxremote.access和jmxremote.password

# cd  /usr/java/jdk1.8.0_131/jre/lib/management

# mv jmxremote.password.template jmxremote.password   

# chmod 600 jmxremote.access jmxremote.password  

# vi jmxremote.password   

jmxremote.access 一般保持原始内容不变即可。

对于jmxremote.password,将 其中的:

# monitorRole  QED
# controlRole   R&D

井号注释取消掉。其中monitorRole为只拥有只读权限的角色,controlRole有更高权限:读写等等。

如下图:

三、最后将端口加入防火墙信任列表

 #vi /etc/sysconfig/iptables  

编辑iptables,加入新一行内容,这里的端口和上面的监控端口一致。

  -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 12345 -j ACCEPT

如下图光标部分:

 

四、启动tomcat

# /usr/local/tomcat/tomcat1/bin/startup.sh

而我们在上面配置的jmx代理就会随tomcat一起启动。

可以使用netstat -an | grep 12345命令查看端口是否正常启动。如下图可以看到已经启动。

五、使用windows客户机上的jconsole连接服务器端 进行监控。

打开C:\Program Files\Java\jdk1.6.0_10\bin\jconsole.exe,输入服务器端相关信息,点击连接就会进入下面界面了。

这里选择远程链接输入:ip:监控端口

用户名+密码 :步骤三里有

# monitorRole  QED    //monitorRole是查看角色,拥有只读权限,XXXXXX是设置的密码。

# controlRole   R&D   //controlRole是控制用户,拥有读写权限,XXXXXX是设置的密码。

这里因为步骤一设置初始化启动参数时:认证参数为false      ---Dcom.sun.management.jmxremote.authenticate=false  

所以可以不填写密码口令。

点击连接,进入到监控页面。


问题1:连接出现以下界面,而且点击不安全的连接也连不上

原因:我开始使用的是如下参数,里面没有设置启动的服务器ip。

  1. JAVA_OPTS="-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m" JAVA_OPTS=" -Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "   

解决办法:

使用上述第一步的参数设置后,可以连接成功,可能还会出现下面界面,但是点击不安全的连接,就可以连接成功。

问题2:同样使用的上面这个启动参数,设置的端口为1090。

补充:由于配置了上述文件,在停止tomcat的时,会由于上述配置的端口被占用而无法停掉。2种方式解决:
(1)使用killall -9 java 杀掉所有的java进程。
(2)在catalina.sh中配置CATALINA_PID=pid,这样在停止tomcat的过程中,上述被占用的端口会自动被杀掉。

猜你喜欢

转载自www.cnblogs.com/wuzm/p/11167122.html