Jconsole远程连接监控jvm
前提 关闭防火墙
第一步配置tomcat文件
进入/usr/local/tomcat6/bin下,打开catalina.sh(vi catalina.sh)文件,添加以下内容
1.避免jvm内存溢出,第一行添加:
JAVA_OPTS='-server -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256M'
2.添加以下内容(需要密码登录)端口必须是1090
JAVA_OPTS="-Xms128m -Xmx128m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=128m -Djava.rmi.server.hostname=192.168.0.101
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
#可以不用密码
JAVA_OPTS="$JAVA_OPTS-Dcom.sun.management.jmxremote.pwd.file=/usr/java/jdk/jre/lib/management/jmxremote.password"
说明:
使用密码登录时authenticate为true,并且指定文件
/usr/java/jdk/jre/lib/management/jmxremote.password为密码配置文件路径
配置密码文件移步第三部
说明:当tomacat执行./shutdown.sh时提示端口被占用,原因是在关闭Tomcat时,也执行了Catalish中的jmxremote的端口号,所以在添加判断语句(if语句)
第二步配置ip
执行hostname -i
如果显示127.0.0.1,那么修改hosts文件(vi /etc/hosts),否则连接jconsole失败
原代码
改为
改完再次执行hostname -i
第三步配置使用密码连接jconsole
- 配置jmxremote.access文件
进入/usr/java/jdk/jre/lib/management目录,打开并修改jmxremote.access文件
2.配置jmxremote.password文件
进入/usr/java/jdk/jre/lib/management目录
复制该文件
打开并修改jmxremote.password文件
3.配置权限文件为600
第四步启动jconsole远程连接
Cmd进入d/jdk1.8/bin下执行jconsole命令打开Java监视和管理控制台
说明:
填写ip+端口
用户名(admin)和密码(123456)为第三步配置的用户名和密码
点击【连接】开始远程连接并监控jvm。提示是否不安全方式重试,而且配置文件catalina.sh里我的ssl为false状态
点击【不安全连接】进入监控模式,这里不明白什么原因