jvisualvm远程监控Tomcat

VisualVM:多合一故障处理工具

      VisualVM(All-in-One Java Trouble Tool)是到目前为止随JDK发布功能最强大的运行监视和故障处理程序。而且VisualVM不需要被监视的程序基于特殊Agent运行,因此它对实际性能的影响很小,使得它可以直接应用在生产环境中。
界面如下:

界面1
界面2

VisualVM的功能

VisualVM可以做到:

  • 显示虚拟机进程以及进程的配置、环境信息(jsp、jinfo)。
  • 监视应用程序的CPU、GC、堆、方法区以及线程的信息(jstat、jstack)。
  • dump以及分析堆转储快照(jmap、jhat)。
  • 方法级的程序运行性能分析,找出被调用最多、运行时间最长的方法。
  • 离线程序快照:收集程序的运行时配置、线程dump、内存dump等信息建立一个快照,可以将快照发送开发者处进行Bug反馈。

VisualVM安装插件

       由于墙的原因,所以需要采取些措施,才能顺利的下载安装插件。
插件

jvisualvm远程监控Tomcat

       进入我们的正题,利用jvisualvm远程监控Tomcat服务器。这里的Tomcat部署在远程Linux服务器上。

1.修改Tomcat下bin目录下的startup.sh

       在startup.sh倒数第二行,也就是exec “ PRGDIR"/" EXECUTABLE” start “$@”上一行添加如下内容:
       export CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.1.130
-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"

       各个参数的说明如下:

-Dcom.sun.management.jmxremote   #启用JMX远程监控
-Djava.rmi.server.hostname=192.168.1.130  #Tomcat服务器地址
-Dcom.sun.management.jmxremote.port=8888  #jmx连接端口
-Dcom.sun.management.jmxremote.ssl=false   #是否ssl加密
-Dcom.sun.management.jmxremote.authenticate=false   #远程连接不需要密码认证
-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password   #指定连接的用户名和密码配置文件
-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access   #指定连接的用户所拥有权限的配置文件

2.修改服务器上Tomcat的配置:

       首先需要修改两个配置文件,首先进入 JAVA_HOME\jre\lib\management 目录下,拷贝和修改jmxremote.password.template为jmxremote.password,操作为:
取消最后两行代码的注释,

\# monitorRole  QED   --->   monitorRole  QED
\# controlRole   R&D   --->   controlRole   R&D

拷贝和修改文件jmxremote.access,操作为:

monitorRole   readonly
controlRole   readwrite

3.将文件拷贝至服务器上Tomcat下的conf目录下

       即和tomcat的配置文件放在一起

4.修改两个文件权限

       修改jmxremote.access和jmxremote.password的权限:sudo chmod 600 jmx*

5.重新启动Tomcat

       可以查看log下的日志看是否有错,并解决。

6.打开jvisualvm

       6.1 添加远程主机 6.2 添加JMX连接 确定连接即可
连接

补充:

监控JVM中运行的Java程序

前提:远程机器需要有Java环境
1.在%JAVA_HOME%\bin目录下创建一个文件:jstatd.all.policy(名字可以变,扩展名不可以变),内容如下:
grant codebase “file:${java.home}/../lib/tools.jar” {
permission java.security.AllPermission;
};
这个文件的作用是让jstatd服务能够读取机器上的java应用程序的运行数据
2.在%JAVA_HOME%\bin目录下,执行如下命令:
jstatd -J-Djava.security.policy=jstatd.all.policy
3.展开刚所新建的远程主机,就可看到运行在远程机器上的JAVA应用程序了

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值