阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用VisualVM远程监控JVM Linux服务器配置方法

497次阅读
没有评论

共计 3322 个字符,预计需要花费 9 分钟才能阅读完成。

VisualVM 是 JDK 自带的一款全能型性能监控和故障分析工具,包括对 CPU 使用、JVM 堆内存消耗、线程、类加载的实时监控,内存 dump 文件分析,垃圾回收运行情况的可视化分析等,对故障排查和性能调优很有帮助。在 Windows 中安装 JDK 后,VisualVM 位于 %JAVA_HOME%/bin/ 下,直接执行 jvisualvm.exe 即可,一个主要运行界面如图:

使用 VisualVM 远程监控 JVM Linux 服务器配置方法

VisualVM 会自动检测本机运行中的 JVM 并建立连接,本文主要介绍连接远程 Linux 服务器的配置方法,测试环境为 CentOS 6.5,JDK8,Tomcat8。

VisualVM 连接远程服务器有两种方式:JMX 和 jstatd,两种方式都不能完美支持所有功能,例如 JMX 不支持 VisualGC,jstatd 不支持 CPU 监控,实际使用可同时配置上并按需选用。

1 配置前的准备

我们需要先检查 linux 的 hostname 匹配的 IP,执行

hostname -i

如果匹配的结果是无法识别或者 127.0.0.1, 则需要手动配置主机名和 IP 映射。假设要用于建立连接的 IP 是 192.168.11.233,主机名是 mylinux:

vi /etc/hosts

添加一行

192.168.11.233  mylinux

2 配置 JMX

2.1 创建 setenv.sh

进入 tomcat/bin 目录

vi setenv.sh

  1. #!/bin/shexport JAVA_OPTS=“$JAVA_OPTS -Xms512m -Xmx512m -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access” 

(-Xms512m -Xmx512m 不是必须的参数,放在这里只是示意可以连同 JVM 参数一起调整)

设置权限

chmod +x setenv.sh

2.2 在 server.xml 中添加 listener

进入 tomcat/conf 目录

vi server.xml

  1. <Listener className=“org.apache.catalina.mbeans.JmxRemoteLifecycleListener” rmiRegistryPortPlatform=“10001” rmiServerPortPlatform=“10002” /> 

端口可根据实际情况修改,添加后的结构如下图

使用 VisualVM 远程监控 JVM Linux 服务器配置方法

2.3 JMX 访问控制文件

进入 tomcat/conf 目录,执行

cp $JAVA_HOME/jre/lib/management/jmxremote.password.template jmxremote.passwordcp $JAVA_HOME/jre/lib/management/jmxremote.access jmxremote.access

然后

vi jmxremote.password

取消以下两行注释
#monitorRole QED
#controlRole R&D

也可以自定义账号,按 username password 的格式添加一行,这样就需要同时修改 jmxremote.access

vi jxmremote.access
在最下面添加
username  readwrite

修改权限

chmod 600 jmxremote.password
chmod 600 jxmremote.access

2.4 添加 catalina-jmx-remote.jar

下载地址  http://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina-jmx-remote

下载后复制到 tomcat/lib 目录

至此,配置工作完成,但是还需要把 2.2 中的两个端口加入到防火墙允许规则中

2.5 设置防火墙

vi /etc/sysconfig/iptables

在 -A INPUT -j REJECT –reject-with icmp-host-prohibited 前加入

  1. -A INPUT -p tcp -m state –state NEW -m tcp –dport 10001 -j ACCEPT   
  2. -A INPUT -p tcp -m state –state NEW -m tcp –dport 10002 -j ACCEPT 

service iptables restart

在客户机上 telnet 服务器的 10001 和 10002 端口,如果都通就正确了。

2.6 测试

在客户机上启动 jvisualvm.exe,在左侧树形菜单的远程上右键 -> 添加远程主机,主机名填写服务器 IP

使用 VisualVM 远程监控 JVM Linux 服务器配置方法

确定后,远程下出现新的子节点,在子节点上右键 -> 添加 JMX 连接

连接输入 IP:10001,注意这个端口是 2.2 步骤中配置的 rmiRegistryPort。勾选使用安全凭证,用户名和口令即 2.3 步骤中 jmxremote.password 文件内的用户名和对应密码。勾选保存安全凭证

使用 VisualVM 远程监控 JVM Linux 服务器配置方法

本文的配置中未启用 SSL,点确定后会提示“请确认不用 SSL 方式尝试连接”,选择“是”。如果一切顺利在服务器节点下出现 JMX 连接子节点,双击后即可打开功能界面。

使用 VisualVM 远程监控 JVM Linux 服务器配置方法

尝试一下强大的 Visual GC 插件,很遗憾,提示 ” 不受此 JVM 支持“,如果想使用这个插件,就需要配置 jstatd 连接方式,下面来看 jstatd 的配置。

3 配置 jstatd

3.1 配置安全策略

vi $JAVA_HOME/jre/lib/security/java.policy
在文件末位的 }; 前添加
permission java.security.AllPermission;
使用 VisualVM 远程监控 JVM Linux 服务器配置方法

3.2 启动 jstatd

cd $JAVA_HOME/bin
./jstatd -J-Djava.security.policy=all.policy &
启动后会开启注册端口 1099 和一个随机的连接端口,注册端口也可通过 - p 参数指定,如./jstatd -J-Djava.security.policy=all.policy -p 10003 &

3.3 设置防火墙

除了把 1099 添加到防火墙规则外,还需要找到另外一个随机端口,也加入到规则中
执行
netstat -anp | grep *jstatd
使用 VisualVM 远程监控 JVM Linux 服务器配置方法
可以看到除了 1099,jstatd 还监听了 53040 端口,把这个也加入到规则中,添加方法参照 2.5
(注意:这个随机端口重启后会变化)

3.4 测试

启动 VisualVM,因为在配置 JMX 时已经添加过服务器节点,如果配置正确,通常 VisualVM 会自动检测到 jstatd 连接并添加节点
使用 VisualVM 远程监控 JVM Linux 服务器配置方法
如果没有自动添加,可以检查端口是否能连通并尝试手动添加连接
VisualGC 界面
使用 VisualVM 远程监控 JVM Linux 服务器配置方法
(完)

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-01/139409.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3322字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19356
评论数
4
阅读量
8320819
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛 NAS-2:飞牛配置 RAID 磁盘阵列 前言 大家好,我是星哥之前星哥写了《星哥带你玩飞牛 ...
星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛 NAS-1:安装飞牛 NAS 前言 在家庭和小型工作室场景中,NAS(Network Atta...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...
飞牛NAS升级到最新版,有线无法获取IP、无线网络莫名打开的BUG问题

飞牛NAS升级到最新版,有线无法获取IP、无线网络莫名打开的BUG问题

  飞牛 NAS 升级到最新版,有线无法获取 IP、无线网络莫名打开的 BUG 问题 星哥的飞牛 N...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛NAS-8:有了NAS你可以干什么?软件汇总篇

星哥带你玩飞牛 NAS-8:有了 NAS 你可以干什么?软件汇总篇 前言 哈喽各位玩友!我是是星哥,不少朋友私...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
免费获得大模型的Api-Key的方法:英伟达提供GLM-4.7、Minimax M2.1模型和GitHub的AI大模型API申请

免费获得大模型的Api-Key的方法:英伟达提供GLM-4.7、Minimax M2.1模型和GitHub的AI大模型API申请

  免费获得大模型的 Api-Key 的方法:英伟达提供 GLM-4.7、Minimax M2.1 ...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...