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

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

471次阅读
没有评论

共计 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
文章数
19350
评论数
4
阅读量
7876435
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

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

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

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

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
开源神器组合!1Panel面板+Halo助你轻松打造个人/企业内容中心

开源神器组合!1Panel面板+Halo助你轻松打造个人/企业内容中心

开源神器组合!1Panel 面板 +Halo 助你轻松打造个人 / 企业内容中心 前言 大家好,我是星哥,之前...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的 3D 玩偶了 前些日子参加某网站活动,获得一次实物 3D 打印的机会,于是从众多...

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

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

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

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

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

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

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

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...