Java_jvisualvm使用JMX连接远程机器

jvisualvm远程连接的三种方式 基于jatatd实现远程连接 jstatd是一个基于RMI (Remove Method Invocation)的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口,从而允许监控工具远程地连接到本地的JVM 配置安全策略 默认情况下,Java的安全策略比较严格,并不允许jstatd直接启动,因此,需要设置下安全策略。不同的JDK版本配置方式不同,主要是由于JDK9开始,已经不再有tools.jar导致的。 创建安全策略文件,命名为:jstatd.all.policy,下 阅读详情

https://my.oschina.net/heroShane/blog/196227

 

一、启动普通的jar程序

1、执行foo.jar启动命令

java -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar foo.jar

 

2、12345为需要监控的端口,远程机器需要开启

 

3、foo.jar为程序名称

 

4、本机jvisualvm添加监控

 

 

5、异常情况:VisualVM 无法使用 service:jmx:rmi:///jndi/rmi:///jmxrmi 连接到

关闭远程机器的防火墙即可:service iptables stop

不关闭防火墙的解决方案:http://qian0021514578.iteye.com/blog/2189041

原因:

除了JMX server指定的监听端口号外,JMXserver还会监听一到两个随机端口号,
可以通过命grep <pid> 来查看当前java进程需要监听的随机端口号

 

6、远程连接启动authenticate、ssl参数

http://softbeta.iteye.com/blog/1264833

以authenticate设置为例

a)  jmx连接使用安全凭证,这里的凭证不是linux的登录账号密码,需要单独设置

 

b)  jar程序启动命令

java -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.access.file=/usr/local/jmxremote.access -Dcom.sun.management.jmxremote.password.file=/usr/local/jmxremote.password -jar foo.jar

 

c) jmxremote.access内容

admin readwrite

 

d) jmxremote.password内容

admin 123456

使用 service:jmx:rmi:///jndi/rmi:///jmxrmi 连接到XX.xx.xx.x

e) 两个文件授权(必须按下面方式授权,chmod777都不行)

chmod 600 jmxremote.access
chmod 600 jmxremote.password
chown root:root jmxremote.access
chown root:root jmxremote.password
 
f) jvisual vm使用
 

 

 

 

二、监控tomcat程序

 JDK的bin目录下有jvisualvm或jconsole可以监控本地和远程jvm实例的运行动态(包括cpu,内存等),

对于性能分析或内存泄露分析等极其方便。下面介绍如何通过这两个工具远程监控有防火墙的linux上的tomcat服务。

废话少说,直接上正题:

我的测试环境是:centos 6.2(IP为192.168.1.118)上通过jsvc将tomcat 7作为服务启动。

 

1. 下载http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-7/v7.0.28/bin/extras/catalina-jmx-remote.jar并放在tomcat7的$CATALINA_BASE/lib目录。

2. 修改tomcat7的$CATALINA_BASE/conf/server.xml,在<Server port="8005" shutdown="SHUTDOWN"> 下加入监听器:

<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"

          rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />

3.建立文本文件$CATALINA_BASE/conf/jmxremote.password,其内容为:admin letmein

4.建立文本文件$CATALINA_BASE/conf/jmxremote.access,其内容为:admin readwrite

5.修改jsvc的服务启动配置文件,加入启动参数,如:

CATALINA_OPTS="$CATALINA_OPTS -Xms128m -Xmx200m -XX:PermSize=64M -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC \

-Djava.rmi.server.hostname=192.168.1.118 \

-Dcom.sun.management.jmxremote.password.file=$CATALINA_BASE/conf/jmxremote.password \

-Dcom.sun.management.jmxremote.access.file=$CATALINA_BASE/conf/jmxremote.access \

-Dcom.sun.management.jmxremote.ssl=false"

6.开通linux防火墙的端口:10001和10002.(例如:在/etc/sysconfig/iptables中加入

-A INPUT -m state --state NEW -m tcp -p tcp --dport 10001 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 10002 -j ACCEPT),

注意要重启防火墙使生效。

7.至此远程可以使用jvisualvm或jconsole通过地址:(192.168.1.118:10001或者service:jmx:rmi:///jndi/rmi://192.168.1.118:10001/jmxrmi),使用用户admin密码letmein登录

动态监控tomcat服务了.

 

    参考地址:http://tomcat.apache.org/tomcat-7.0-doc/config/listeners.html

Java VisualVM添加远程JMX连接时提示“无法使用service:jmx:rmi:///jndi/rmi******连接到*****” 在使用本地Java VisualVM连接测试服务器上的JVM时出现提示 无法使用service:jmx:rmi:///jndi/rmi://***.***.***.***:****连接到***.***.***.***:**** 但是telnet ip 端口发现网络是通的 啪的我就百度了一下,很快嗷 1.有的说是因为Linux防火墙的原因? 使用systemctl stop firewalld.service, 提示 systemctl命令不存在... 2.有人说是因为VisualVM走了默认 阅读详情

相关推荐

jvisualvm工具使用

jvisualvm是JDK自带的具有图形界面操作功能的JVM性能监控和诊断工具,它不仅能分析和诊断堆转储文件,在线实时监控本地JVM进程,还能监控远程服务器上的JVM进程。

我的博客 9034

JMX远程配置

JMX参数配置 配置 说明 参数 -Dcom.sun.management.jmxremote.authenticate 开启鉴权 (鉴权) false/ture -Dcom.sun.management.jmxremote.ssl 启用ssl连接 false/ture -Dcom.sun.management.jmxremote.local.only 是否只接受本地连接 false/ture -Dcom.sun.management.jmxremote.host jmx绑定指定

qq_39042827的博客 3538

jvisualvm连接远程服务器

jvisualvm除了可以查看本地JVM进程的情况,也可以查看远程服务器的JVM进程情况。但需要注意的是,生产环境不允许这么做,因为这会占用生产服务器的资源,可能对生产环境造成破坏性的影响,但开发环境或测试环境,我们是可以这么做的。 1、远程服务配置 首先,我们需要的启动参数中添加jmx的相关参数 java -Dcom.sun.management.jmxremote.port=8888 -Djava.rmi.server.hostname=192.168.74.132 -Dcom.sun.manageme

weixin_44335140的博客 6605

使用jvisualvm JMX 连接远程服务

使用 jvisualvm 添加JMX连接远程服务的过程记录。 1. 添加启动参数配置 我的是springboot程序,可以用两种方式: 第一种:在应用的启动脚本上添加 nohup java -Djava.rmi.server.hostname=192.168.1.7 -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmx remote.ssl=false -Dcom.sun.management.jmxremote.authenti

Keep learning 2981

使用jvisualvm连接JMX远程端口监控jvm内部情况

title: 使用jvisualvm连接JMX远程端口监控jvm内部情况对于应用程序的监控是必要的,特别是在生产环境上,我们应该始终能够提前发现潜在的问题,并在问题产生后要第一时间就知道。在真实的业务运营中监控是多维度的,几乎涵盖了软硬件以及各项业务指标。就java应用程序本身来讲,我们最关注的是jvm的内部情况,比如CPU和堆内存使用率、线程状态和垃圾回收等情况。那如何得到这些监控数据呢?好在JDK里面自带了一些工具帮我们分析这些数据并呈现报告,接下来介绍。more。

架构师修炼道路 765

jvirtualvm通过jmx远程连接jvm

jvirtualvm通过jmx远程连接jvm的配置和参数

wyh9459的专栏 4333

java 命令行 jmx_Java命令行监控_jvisualvm使用JMX连接远程机器(实践)

一、启动普通的jar程序1、执行foo.jar启动命令java -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar foo.jar2、12345为需要监控的端口,远程机器需要开...

weixin_31589331的博客 539

手把手教你用CMake和MinGW64编译libuvc:静态链接与动态链接的选择

本文详细指导如何在Windows平台上使用CMake和MinGW64编译libuvc库,并深入探讨静态链接与动态链接的选择策略。通过对比两种链接方式在部署复杂度、内存占用和版本管理等方面的差异,帮助开发者根据项目需求做出最优决策,实现高效的USB摄像头开发。

weixin_29171087的博客 254

Java_jvisualvm使用JMX连接远程机器(实践)

https://my.oschina.net/heroShane/blog/196227一、启动普通的jar程序1、执行foo.jar启动命令java -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authentica...

weixin_33801856的博客 215

西门子 S7-200 SMART 系列六:手把手教你配置S7-200 SMART Modbus RTU

Modbus 是公开通信协议,其最简单的串行通信部分仅规定了在串行线路的基本数据传输格式。Modbus 具有两种串行传输模式,ASCII 和 RTU,它们定义了数据如何打包、解码的不同方式。支持 Modbus 协议的设备一般都支持 RTU 格式。

John_09040211的博客 7429

CAT24C16 EEPROM的I²C页写与页读底层实现

I²C是一种广泛应用于嵌入式系统的双线同步串行通信协议,其核心在于严格的时序控制、地址寻址机制与主从应答逻辑。理解I²C总线物理层(上拉电阻、SCL/SDA电气特性)、协议层(START/STOP、ACK/NACK、7位地址格式)及外设寄存器操作(如SR1状态标志、CCR时钟分频),是实现可靠通信的基础。在实际工程中,EEPROM类器件(如CAT24C16)因其非易失性、页缓冲区结构和写保护(WP)功能,成为数据持久化关键载体;其16字节页写约束、内部写周期(5–10ms)与地址指针自动递增等特性,直接决定

weixin_42591413的博客 388

使用jvm监控工具(jconsole、jvisualvm)通过jmx远程连接kubernetes上的java应用

随着kubernetes大火,工作中部署应用都上了kubernetes,当java应用出现oom时,就需要通过一些jvm监控工具来辅助分析java的堆栈,查出有内存泄漏的代码,如果java应用的镜像中安装的jdk环境有jmap、jstate还好,但是没有的话怎么办呢? 使用过jconsole或jvisualvm的同学应该都知道,在连接jvm进程时可以选择连接本地进程或者远程jvm进程,如...

schzrj的专栏 1558

5分钟搞定Vivado IP核的VCS仿真:从Export脚本到Verdi波形查看全流程

本文详细介绍了如何利用Vivado的Export Simulation功能,快速搭建Vivado IP核的VCS与Verdi联合仿真环境。通过自动化脚本生成、FSDB波形配置及高效调试技巧,实现从工程导出到波形查看的全流程,大幅提升FPGA验证效率,尤其适合IC验证工程师和竞赛团队。

weixin_29306261的博客 475

Jvisualvm连接远程应用(一:jstatd方式)

连接远程java应用除了jstatd方式,还有jmx方式。不必拘泥于一种,一种不行可以果断尝试另一种,兴许就行了。两天前,我像大家一样,在网络上搜索jvisualvm连接remote 应用的方法,然而,不知道为啥,我的开发机器的visualvm真就连不上远程主机上的应用。试了同事电脑,试了改端口,试了wireshark抓包,(主要是看连接建立了没,我这边的现象是:地址应该没问题,不是网上很多博客说的hostname的问题,在本机向远程机器上的jstatd。

2501_92608043的博客 1146

手把手教你解决Kernel panic报错:init找不到的5种排查方法(附NFS挂载实战)

本文深入解析了Linux系统启动时出现“Kernel panic - not syncing: No working init found”报错的根本原因,并提供了五种系统性的排查方法。文章结合NFS挂载根文件系统的实战场景,详细阐述了从动态链接库依赖、内核引导参数、NFS权限配置、文件系统完整性到内核配置干扰的完整排查路径,帮助开发者快速定位并解决这一常见的系统启动故障。

weixin_29159995的博客 192

【OCPP】ocpp1.6协议3.3章节:功能配置文件及接口

Smart Charging Profile中定义了4个接口请求,即GetCompositeSchedule、ClearChargingProfile、SetChargingProfile和ClearCache等。Smart Charging: 包含智能充电相关的功能,如计划充电,报告充电计划,并改变充电速度。Core: 包含电动汽车充电相关的基础功能,如启动和停止充电,更改充电配置,报告充电状态等。Reservation: 包含预约服务相关的功能,如创建,取消和更改预约。

qq_53871375的博客 2170

在本地windows用jConsole jmc jvisualvm监控图形客户端 连接远程服务器java程序jmx监控服务。解决jmx无法连接问题。jvm监控、性能调优工具

环境 云服务器 系统:centos7 系统防火墙 关闭 云服务器安全组 开放 所有tcp端口 openjdk 1.8 1 随便创建了个可以运行的java程序 打包成jar包 springboot_test-0.0.1-SNAPSHOT.jar 2 上传到云服务器上 运行 jmx监控启动参数 如下 java -Djava.rmi.server.hostname=xxx.x.xxx.xxx -D...

a704397849的博客 2591

Dify 第 3 篇 Dify 入门示例 - 聊天助手

本文介绍了如何使用Dify平台快速搭建一个聊天助手。首先通过创建空白应用并选择"聊天助手"模板完成基础设置,然后安装配置通义千问等大语言模型(LLM)并设置API密钥。进阶部分演示了如何创建支持编程语言选择的代码解释器,包括添加提示词约束、插入变量、设置开场白等功能。最后展示了运行效果:用户可选择编程语言后输入代码,系统会给出相应解释。文章还提到应用支持发布共享,并附有Dify官方文档参考链接。

甘蓝的专栏 863

【java虚拟机】jvisualvm连接远程jvm

使用JMX连接 第一步:配置 cd ${JAVA_HOME}/jre/lib/management/ cp jmxremote.password.template jmxremote.password sudo vi jmxremote.password 文件中将monitorRole QED和controlRole R&D前的注释去掉,然后保存 第二步:启动被监控的j...

一键一键敲代码 3575

Python白色飘雪(完整代码)

Python绘制白色飘雪动画的完整代码。

AIGC 3万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

JVisualVM 远程连接 JMX 和 jstatd

JMX 配置 远程机器的程序需要加上JVM参数 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false 备注:另

keketrtr的专栏 4320

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

使用jvisualvm通过JMX的方式远程监控JVM的运行情况

使用jvisualvm通过JMX的方式远程监控JVM的运行情况,步骤如下远程服务器的配置在启动java程序时加上如下几个参数 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.man

RO_wsy的专栏 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

JVisualVM 连接远程VM

JVisualVM 连接远程VM JMX 配置 远程机器的程序需要加上JVM参数 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authentica...

qq_21453843的博客 429

Mac下JVisualVM基本使用

1、Mac下安装JVisualVM: http://visualvm.java.net/download.html下载安装文件进行安装 2、启动JVisualVM,界面如下: 3、启动后的JVisualVM会自动检测本地的java应用 4、远程监控linux服务器 1)创建一个文本文件,内容如下: grant codebase "file:${java.home}/..

HJQQINGQING的专栏 2万+

使用JVisualVM监控远程服务

第一步、找到你的java服务启动脚本,添加如下参数 -Djava.rmi.server.hostname=10.10.xx.xx \ -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=9536 \ -Dcom.sun.management.jmxremote.authenticate=false \ -Dcom.sun.management.jmxremote.ssl=false \ ip和端口

桃花惜春风 1139
上一篇: at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
下一篇: org.apache.maven.archiver.MavenArchiver.getManifest错误
冷血java
博客等级 码龄12年 5粉丝 1原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值