VisualVM连接远程主机

2023-10-29

一、在服务器上部署JMX服务

1.进入tomcat的bin目录,修改catalina.sh文件

#tomcat的bin目录,修改catalina.sh: 
#vim catalina.sh 
# 添加如下配置: 
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sum.management.jmxremote.port=8989 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access -Djava.rmi.server.hostname=149.129.124.xx" 
# -Dcom.sum.management.jmxremote.port=8989 jmx连接端口,可自行指定
# -Dcom.sun.management.jmxremote.ssl 是否开启ssl传输,设为false即可 
# -Dcom.sun.management.jmxremote.authenticate 是否校验,设为false即可 
# -Dcom.sun.management.jmxremote.password.file 远程登录的账号管理文件,下文会讲到如何获取 # -Dcom.sun.management.jmxremote.access.file 同上 
# -Djava.rmi.server.hostname 这个很重要,如果不填的话,可以重启成功,按时客户端的jvisual是无法远程连接上的,这里的IP必须是公网IP,公网IP

2.进入tomcat的conf 编辑server.xml文件,添加jmx的端口监听

<!-- # 进入tomcat的conf: vim server.xml # 添加如下的监听配置。其中10001和10002是自定义的两个端口,用于远程连接需要  --> 
<!-- 远程监控 --> 
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />

3.添加jmx的访问控制文件

# 进入tomcat/conf的目录 # 执行以下命令 cp 复制两个文件
cp $JAVA_HOME/jre/lib/management/jmxremote.password.template jmxremote.password 
cp $JAVA_HOME/jre/lib/management/jmxremote.access jmxremote.access 
vi jmxremote.password 
# 取消下面两行的注释,取消注释表示你可以使用这两个账号进行远程登录, 使用就打开,不使用可以不打开
#monitorRole QED 
#controlRole R&D 
# 也可以自定义账号,格式如 username passwd,如我想要添加一个名称叫root的账号,密码是root@123 vim jmxremote.password 
# 在最后一行添加 root root@123
# 修改完jmxremote.password文件,还要修改jmxremote.access文件,添加权限 zexin readwrite chmod 600 jmxremote.password chmod 600 jmxremote.access 

4.添加catalina-jmx-remote.jar包到tomcat的lib目录下

maven仓库下载,找到对应的版本

5.连接测试结果

二、安装jstat服务

1. 安装好JMX后,点击 Visual GC 会显示不受JVM支持,需要安装jstat服务

2. JDK的bin目录下,配置安全策略

cd $JAVA_HOME/bin 
# 新建安全策略文件 
vim jstatd.all.policy 
# 添加如下内容: 
grant codebase "file:${java.home}/../lib/tools.jar" { 
    permission java.security.AllPermission; 
}; 
# 原文说明,我不么深入研究,有些文章会在$JAVA_HOME/jre/lib/security/java.policy直接修改,本人我是不推荐的,能不动 到原来的配置文件进来就不要碰到,而且在java.policy直接修改,赋予的权限太高,也不安全。

3.启动jstat

cd $JAVA_HOME/bin 
# 启动命令:(启动成功后,没有报错且有日志输出就是正常的) 
./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=149.129.124.xx -J-Djava.rmi.server.logCalls=false
# 解释: 
# -J-Djava.rmi.server.hostname=149.129.124.xx 这里要填的是公网IP # -J-Djava.rmi.server.logCalls=true 是否开启日志,第一次配置最好开启,可以确定是否启动成功,如果是已经配置很多次了,能确保成功的,建议就把该日志关掉,因为该日志的产生量不小,容易撑爆硬盘 
# 在生产环境的配置如下(去掉日志打印,加入后台运行),这里我在监控的时候,通过输入pid发现不行,不知道怎么回事,后面再查看下问题所在: ./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=149.129.124.xx &

4.查看效果(在非后台模式启动下查看的)

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VisualVM连接远程主机 的相关文章

  • 将SQL数据引入jquery availabletag

    我正在尝试制作自动完成文本框 但如何将 SQL 数据包含到 jquery 可用标记并循环它 我无法根据以下代码执行该功能 任何帮助 将不胜感激 谢谢 这是我的预期输出 预期结果演示 http jsfiddle net VvETA 71 jq
  • 在 Struts 2 中传递 URL 参数而不使用查询字符串

    我想使用类似的 URL host ActionName 123 abc 而不是像这样传递查询字符串 host ActionName parm1 123 parm2 abc 我怎样才能在 Struts 2 中做到这一点 我按照下面的方法做了
  • Android蓝牙java.io.IOException:bt套接字已关闭,读取返回:-1

    我正在尝试编写一个代码 仅连接到运行 Android 5 0 KitKat 的设备上的 目前 唯一配对的设备 无论我尝试了多少方法 我仍然会收到此错误 这是我尝试过的最后一个代码 它似乎完成了我看到人们报告为成功的所有事情 有人能指出我做错
  • 是否可以从 servlet 内部以编程方式设置请求上下文路径?

    这是一个特殊情况 我陷入了处理 企业 网络应用程序的困境 企业应用程序正在调用request getContext 并将其与另一个字符串进行比较 我发现我可以使用 getServletContext getContextPath 获取 se
  • 如何通过注解用try-catch包装方法?

    如果应该在方法调用中忽略异常 则可以编写以下内容 public void addEntryIfPresent String key Dto dto try Map
  • 从直方图计算平均值和百分位数?

    我编写了一个计时器 可以测量任何多线程应用程序中特定代码的性能 在下面的计时器中 它还会在地图中填充花费了 x 毫秒的调用次数 我将使用这张图作为我的直方图的一部分来进行进一步的分析 例如调用花费了这么多毫秒的百分比等等 public st
  • 添加到列表时有没有办法避免循环?

    我想知道这样的代码 List
  • Java、Spring:使用 Mockito 测试 DAO 的 DataAccessException

    我正在尝试增加测试覆盖率 所以我想知道 您将如何测试 DAO 中抛出的 DataAccessExceptions 例如在一个简单的 findAll 方法中 该方法仅返回数据源中的所有数据 就我而言 我使用 Spring JdbcTempla
  • 用于缓存的 Servlet 过滤器

    我正在创建一个用于缓存的 servlet 过滤器 这个想法是将响应主体缓存到memcached 响应正文由以下方式生成 结果是一个字符串 response getWriter print result 我的问题是 由于响应正文将不加修改地放
  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen
  • Karaf / Maven - 无法解决:缺少需求 osgi.wiring.package

    我无法在 Karaf 版本 3 0 1 中启动捆绑包 该包是使用 Maven 构建的并导入gson http mvnrepository com artifact com google code gson gson 2 3 1 我按照要求将
  • 避免 Java 中的重复导入:继承导入?

    有没有办法 继承 导入 Example 常见枚举 public enum Constant ONE TWO THREE 使用此枚举的基类 public class Base protected void register Constant
  • Lombok @Builder 不创建不可变对象?

    在很多网站上 我看到 lombok Builder 可以用来创建不可变的对象 https www baeldung com lombok builder singular https www baeldung com lombok buil
  • 如何让 Emma 或 Cobertura 与 Maven 一起报告其他模块中源代码的覆盖率?

    我有一个带有 Java 代码的多模块 Maven 设置 我的单元测试在其中一个模块中测试多个模块中的代码 当然 这些模块具有相互依赖性 并且在测试执行之前根据需要编译所有相关模块中的代码 那么 如何获得整个代码库覆盖率的报告 注意 我不是问
  • 禁用 Android 菜单组

    我尝试使用以下代码禁用菜单组 但它不起作用 菜单项仍然启用 你能告诉我出了什么问题吗 资源 菜单 menu xml menu menu
  • Hadoop NoSuchMethodError apache.commons.cli

    我在用着hadoop 2 7 2我用 IntelliJ 做了一个 MapReduce 工作 在我的工作中 我正在使用apache commons cli 1 3 1我把库放在罐子里 当我在 Hadoop 集群上使用 MapReduceJob
  • JMS 中的 MessageListener 和 Consumer 有什么区别?

    我是新来的JMS 据我了解Consumers能够从队列 主题中挑选消息 那么为什么你需要一个MessageListener因为Consumers会知道他们什么时候收到消息吗 这样的实际用途是什么MessageListener 编辑 来自Me
  • 源值 1.5 的错误已过时,将在未来版本中删除

    我使用 scala maven plugin 来编译包含 scala 和 java 代码的项目 我已经将源和目标设置为1 7 但不知道为什么maven仍然使用1 5 这是我在 pom xml 中的插件
  • 记录类名、方法名和行号的性能影响

    我正在我的 java 应用程序中实现日志记录 以便我可以调试应用程序投入生产后可能出现的潜在问题 考虑到在这种情况下 人们不会奢侈地使用 IDE 开发工具 以调试模式运行事物或单步执行完整代码 因此在每条消息中记录类名 方法名和行号将非常有
  • 将对象从手机共享到 Android Wear

    我创建了一个应用程序 在此应用程序中 您拥有包含 2 个字符串 姓名和年龄 和一个位图 头像 的对象 所有内容都保存到 sqlite 数据库中 现在我希望可以在我的智能手表上访问这些对象 所以我想实现的是你可以去启动 启动应用程序并向左和向

随机推荐

  • win11怎么更新22H2?不要错过这两个Win11升级22H2的好方法!

    Win11年度大版本更新22H2已经推送 心里是否有些蠢蠢欲动 Windows11系统的22H2版本是微软将大规模更新的系统版本 因此它将对计算机硬件设施有一定的要求 下面小编将为您带来两个个Win11升级22H2的好方法 快来学习一下Wi
  • 在jsp页面的url链接传递中文参数的乱码问题

    已知项目中配置如下 strust2里面 在web xml文件配置了如下
  • 从 Java 到 Go:云服务接口开发详解(AWS、GCP、Azure)

    目录 一 Go 与 Java 简要对比 二 使用 Go 语言开发 AWS 云服务接口 三 使用 Go 语言开发 GCP 云服务接口 lt
  • 在Windows上安装Python

    Windows安装Python 在这篇在Windows上安装Python的文章中 我们将了解在Windows上设置和安装Python是多么容易 它包括几个简单的步骤 让您快速开始使用适用于Windows的Python Python简介 Py
  • 进程间通讯方式以及各个方式的优缺点

    进程间通讯方式以及各个方式的优缺点 进程通信的含义 进程是转入内存并准备执行的程序 每个程序都有私有的虚拟地址空间 由代码 数据以及它可利用的系统资源 如文件 管道 组成 多进程 多线程是windows操作系统的一个基本特征 Linux系统
  • getInstance()方法的作用

    getInstance 方法的作用 getInstance 指实例化 与new类似 但是于new又有很大的区别 实例化 public static DBConnect instance public static DBConnect get
  • 服务器中单个文件夹无法打开,无法在服务器端打开文件

    您将需要一个 App Data 文件夹 该文件夹定义为 IIS 中的虚拟文件夹 或者您的网站项目中名为 App Data 的文件夹 如 表示转到网站的根目录 如果您在 Windows 中查找用户配置文件中存在的 App Data 文件夹 那
  • Day31——单个拦截器中三个方法的执行顺序以及时机

    一 回顾 前面拦截器简介用实现HandlerInterceptor接口实现了自定义拦截器 可以知道它有三个需要实现的方法 分别是preHandle postHandle afterCompletion 二 知识储备 2 1 单个拦截器中三个
  • 从Qt简单的例子理解析构

    看下面一段代码 MainWindow MainWindow QWidget parent QMainWindow parent ui new Ui MainWindow ui gt setupUi this MainWindow MainW
  • Nacos注册中心14-raft协议选举与心跳

    0 环境 nacos版本 1 4 1 Spring Cloud 2020 0 2 Spring Boot 2 4 4 Spring Cloud alibaba 2 2 5 RELEASE 测试代码 github com hsfxuebao
  • 使用克拉默法则进行三点定圆(二维)

    目录 1 二维圆 2 python代码 3 计算结果 本文由CSDN点云侠原创 爬虫网站请自重 1 二维圆 已知不共线的三个点 设其坐标为 x 1 y 1
  • JSTL 1.2 - The absolute uri: http://java.sun.com/jstl/core cannot be resolved

    序 上周五 公司临时决定把一个老项目要部署到外边 事前我也没有接到通知 下午要下班的时候 突然跟我说要部署项目 而且那边很着急用 没办法 只能加班等待部署完成了 背景 简单的说一下项目的背景 之所以说是老项目 是因为这个项目是从别的公司接过
  • 数据结构——四叉树

    四叉树 Quadtree 是一种用于表示和管理二维空间的树状数据结构 它将二维空间递归地分割成四个象限 每个象限可以继续分割 以实现对空间的更精细的划分 四叉树通常用于解决空间搜索和查询问题 例如碰撞检测 图像压缩 地理信息系统等领域 特别
  • 将外部 jar 安装到本地仓库 使用maven

    mvn install install file Dfile C Users admin Desktop lib xxx api 1 0 0 39 jar DgroupId com other dsp DartifactId dsp Dve
  • 本地离线安装selenium超详细教程

    经过下午几个小时的奋战 终于把selenium到的本地离线终于搞定了 废话不多说 直接上操作步骤 1 去官网下载安装包 下载地址 2 此处强烈大家建议下载selenium的3 0 的版本 此处省略一万字 我给的地址可以让你直接进入选择历史版
  • GIF动态图片分解,多帧动态图分解成多张静态图片

    体验地址 工具地址 由于挂载在github page上 打开速度会慢一些 请耐心等待或自行解决git网速问题 背景 为什么要制作这么一款工具 最近在做一款表情包的产品 需要将文字生成到gif图片中 并可以控制文字显示的位置 并将不同的文字显
  • matplotlib(五)排版布局

    网格布局目录 subplots 最常见的网格排版方式 一次性定好所有Axes GridSpec 复杂网格排列 SubplotSpec 为给定GridSpec中子图指定位置 subplot2grid 类似于subplot 但使用基于0的索引并
  • 电源基础知识之——LDO 【十大】 关键参数

    简介 在每个产品电路系统设计中 电源 都是非常重要的部分 一个好的电源决定了电路能否稳定的工作 图1所示的为常见的DCDC电源的种类 本文会先带大家了解使用LDO必须掌握的重要参数 并以TI 的LM1117为来举例说明 图1 一 LDO的典
  • 同花顺(股市)爬虫

    爬取同花顺 http q 10jqka com cn 站点前20页股市数据并存储在xlsx文件 难度 中 逆向参数 hexin v gt gt 刷新一次会有有效次数 import copy import requests import pa
  • VisualVM连接远程主机

    一 在服务器上部署JMX服务 1 进入tomcat的bin目录 修改catalina sh文件 tomcat的bin目录 修改catalina sh vim catalina sh 添加如下配置 CATALINA OPTS CATALINA