Linux使用VisualVM远程监控Tomcat

来源:互联网 发布:单片机最小系统板 编辑:程序博客网 时间:2024/05/22 17:37

0. 本文目录

  • 本文目录
  • 概要
  • 配置过程
    • 1 配置startupsh文件
    • 2 创建账号密码和权限配置文件
  • 修改访问权限
  • 运行自己的JVisualVM
  • 添加主机
  • 添加JMX连接和登陆验证

1. 概要

因为项目最后部署在腾讯云服务器上,所以分析性能不是很方便。 但是可以通过 VisualVM 远程监控 Tomcat , 以便性能分析。

可以看到CPU使用率, 获取堆栈快照, 手动堆栈回收, 死锁线程分析等等, 还可以安装其他插件。

本文将记录配置过程, 以便自己后续用到查看。

2 配置过程

2.1 配置startup.sh文件

$CATALINA_HOME/bin/startup.sh 倒数第二行(也就是exec "$PRGDIR"/"$EXECUTABLE" start "$@"一行上边)写入下面的内容:

export CATALINA_OPTS="$CATALINA_OPTS-Dcom.sun.management.jmxremote-Djava.rmi.server.hostname=*.*.*.* YOUR SERVER IP-Dcom.sun.management.jmxremote.port=7003-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=*.*.*.* 你的tomcat服务器IP地址-Dcom.sun.management.jmxremote.port=7003  jmx连接端口-Dcom.sun.management.jmxremote.ssl=false  是否ssl加密-Dcom.sun.management.jmxremote.authenticate=true  远程连接需要密码认证-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password  指定连接的用户名和密码配置文件-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access  指定连接的用户所拥有权限的配置文件

2.2 创建账号密码和权限配置文件

  • jmxremote.access
    进入在 $CATALINA_HOME/conf/ 目录下

创建touch jmxremote.access里添加可以连接监控的用户名以及权限:
文件内容如下:

monitorRole readonlycontrolRole readwrite

cat jmxremote.access 查看里面的内容如下:

ubuntu@VM-0-7-ubuntu:/Develop/tools/tomcat8.5/conf$ cat jmxremote.access torRole readonlycontrolRole readwrite
  • jmxremote.password

touch jmxremote.password 创建存储账号密码的文件
写入下面内容:

monitorRole 111111controlRole 222222

3. 修改访问权限

修改jmxremote.access和jmxremote.password的权限:

sudo chmod 600 jmx*

然后, 重启Tomcat使之生效。

运行自己的JVisualVM

这里写图片描述

添加主机

远程,添加主机,输入服务器的ip:
这里写图片描述

添加JMX连接和登陆验证

这里写图片描述

这里写图片描述

这里写图片描述