jconsole和jvisualvm监控tomcat配置

Jconsole是JDK自带的监控工具,在JDK/bin目录下可以找到。它用于连接正在运行的本地或者远程的JVM,对运行在java应用程序的资源消耗和性能进行监控,并画出大量的图表,提供强大的可视化界面。而且本身占用的服务器内存很小,甚至可以说几乎不消耗,不失为一款好工具,Jconsole是一个基于JMX(java管理扩展)的GUI(图形)工具,用于连接正在运行的JVM,不过此JVM需要使用可管理的模式启动,jconsole是java性能分析器

环境说明
服务器端:Linux(Centos6.4 + jdk1.6.0 + tomcat 7)
客户端: Windows7 + jdk1.6.0

 

Jconsole监控步骤  

1、配置tomcat的访问用户名和密码

从linux系统中jdk的安装目录中拷贝一份修改,主要是增加用户和密码,并放入测试的tomcat的conf目录下

a、进入tomcat目录:/usr/local/tomcat1/conf

b、拷贝jdk的jmxremote.password.template到tomcat下,并命名为jmxremote.password,在tomcat的conf目录下执行:

cp/usr/java/jdk1.7.0_79/jre/lib/management/jmxremote.password.template jmxremote.password,如下图

c、修改权限chmod 700 jmxremote.password,如下图

d、增加用户信息(文档末尾增加自己的用户名密码)

vi jmxremote.password

用户名是controlRole

密码是123456

保存并退出

 

2、配置tomcat的访问权限

从linux系统中jdk的安装目录中拷贝一份修改,并添新增用户(jmxremote.password中新增的用户)的权限

a、拷贝jdk的jmxremote.access文件到tomcat的conf下,在tomcat的conf目录下执行:

cp/usr/java/jdk1.6.0_45/jre/lib/management/jmxremote.access jmxremote.accessm,如下图

b、修改文件权限:chmod 700 jmxremote.access,如下图

c、修改用户的访问权限

vi jmxremote.access

注释掉monitorRole readonly(已经注释的就不用注释了)

注释掉controlRole readwrite(已经注释的就不用注释了)

添加新用户的权限:controlRole  readwrite,如下图

 

3、配置tomcat信息

修改配置信息: vi  /usr/local/tomcat1/bin/catalina.sh

然后找到下面这句话

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

在这句话的上面添加配置信息

# ----- JMX Config Start -----

JAVA_OPTS="$JAVA_OPTS

-Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=192.168.2.199 -Dcom.sun.management.jmxremote.port=8111 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.access.file=/usr/local/tomcat1/conf/jmxremote.access -Dcom.sun.management.jmxremote.password.file=/usr/local/tomcat1/conf/jmxremote.password"

export JAVA_OPTS

# ----- JMX Config End -----

保存一下,然后启动tomcat

参数意义依次是:

   -Dcom.sun.management.jmxremote # 启用JMX远程监控

   -Djava.rmi.server.hostname=192.168.2.199 # 引入虚机IP,之前试了多次都是因为没放IP导致配置失败

   -Dcom.sun.management.jmxremote.port=8111 # 使用端口8111(可随意指定只要不冲突)

   -Dcom.sun.management.jmxremote.authenticate=true # 远程连接需要密码认证

   -Dcom.sun.management.jmxremote.ssl=false # 不使用SSL(SSL我试了多次都没有配置成功:P 暂时不开启)

   -Dcom.sun.management.jmxremote.access.file=/usr/local/tomcat1/conf/jmxremote.access # 使用指定的JMX帐号授权文件

   -Dcom.sun.management.jmxremote.password.file=/usr/local/tomcat1/conf/jmxremote.password # 使用指定的JMX帐号文件

 

4、启动物理机测试

在物理机的运行窗口输入jconsole,回车,输入虚拟机ip,catalina.sh中设置的端口号,jmxremote.password中的用户名、密码

 

安装配置问题总结

a、启动tomcat报错

解决方案:

执行hostname -i 命令,如果显示的是127.0.0.1,则需要修改/etc/hosts文件,否则jconsole无法连接,原因是服务器端解释机器名的问题
vi /etc/hosts,修改如下:

红框里是服务器IP和主机名

 

b、端口被占用

修改端口使不冲突:-Dcom.sun.management.jmxremote.port=8111

c、虚机的防火墙和物理机的防火墙都要关闭

d、要以管理员身份运行

ps:正常情况下,应该不会遇到a和b这两种情况

 

监控分析

1、分析内存,gc

通过对不同堆内存的选择,可以查看出内存使用情况,以及GC回收情况,分析是否存在瓶颈

 

2、分析线程

选择线程可以在右端看到线程的状态、阻塞、堆栈调用,以及图表中线程峰值、活动线程数

 

3、分析类加载情况

 

可看出类加载总数、当前加载数

 

4、修改MBean(可管理资源)属性值

可通过资源图来修改合适的对象资源属性

 

jvisualvm监视远程的linux服务器上的tomcat

1、配置tomcat信息

同jconsole监控配置一样

2、Jvisualvm开启

在运行目录中输入jvisualvm,回车,或者在jdk的bin目录下双击jvisualvm.exe(以管理员身份运行最好)

3、登录Jvisualvm

a、添加远程主机:输入远程主机的ip即可

b、在a中添加的远程主机下添加JMX连接:输入远程主机的ip、端口及用户名密码,如下图

 

 4、监控

转载于:https://www.cnblogs.com/laosun0204/p/8733942.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值