本文主要说明使用jconsole工具连接Linux下的tomcat,步骤如下:
1、设置参数
编辑tomcat安装目录下的bin目录下的catalina.sh 文件(vi catalina.sh )
在行 touch "$CATALINA_OUT" 之上,添加参数行
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.19.23"
注意:
参数行中的com.sun.management.jmxremote.port参数是tomcat JMX监听的端口,可以随意配置,但是不可已经被占用;java.rmi.server.hostname参数的IP地址为远程Linux服务器的IP地址(我一开始没加这个参数,用jconsole连不上tomcat)
2、启动tomcat
执行tomcat安装目录下的bin目录下的startup.sh脚本(./startup.sh),启动tomcat,startup.sh脚本会调用catalina.sh 脚本
3、查看端口
在Linux命令行终端执行netstat -an | grep 8888命令,看我们配置的JMX端口是否已经被占用
如下表示已被占用,若无数据,说明未被占用,则说明配置失败
[root@localhost bin]# netstat -an | grep 8888
tcp 0 0 :::8888 :::* LISTEN
4、使用jconsole连接监控tomcat
执行 %JAVA_HOME%\bin\jconsole.exe (JAVA_HOME为jdk的安装目录),在启动界面中选择远程进程 ,并在空格处输入 service:jmx:rmi:///jndi/rmi://192.168.19.23:8888/jmxrmi (ip和端口都是上面配置的)
5、不用输入用户名和口令,直接点击连接进入即可
连入tomcat后可查看内存和线程数,本例主要查看MBean页签,查看tomcat在MBeanServer中注册的实例
上面的配置方式为不鉴权的配置方式,步骤5中不用输入用户名和口令,直接点击连接进入即可,下面说一下使用鉴权的方式的配置:
修正后的步骤1、设置参数
编辑tomcat安装目录下的bin目录下的catalina.sh 文件(vi catalina.sh )
在行 touch "$CATALINA_OUT" 之上,添加参数行
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.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=192.168.19.23"
可以与不鉴权的步骤1的参数行比较,参数修改如下:
将参数Dcom.sun.management.jmxremote.authenticate设置为true
增加参数Dcom.sun.management.jmxremote.access.file(鉴权用户名及权限配置文件)
增加参数Dcom.sun.management.jmxremote.password.file(鉴权用户的密码配置文件)
配置中增加了两个配置文件,因此需要在tomcat安装目录的conf目录下增加两个文件,如下:
conf/jmxremote.access
monitorRole readonly
controlRole readwrite
monitoRole和controlRole是用户名,不可更改
conf/jmxremote.password
monitorRole pwd1
controlRole pwd2
monitoRole和controlRole是用户名,和上面的文件对应;pwd1和pwd2是密码,密码可以修改
增加完这两个文件后,需要修改这两个文件的权限 chmod 600 jmxremote.*
(若权限为777,启动tomcat会报错)
步骤2、步骤3、步骤4均同上不变
修正后的步骤5、输入用户名密码即可登录
登录后和上面是一样的