visualVM使用jstatd和jmx连接远程jvm及遇到的问题解决

  • JMX方式:

    1. 编辑Tomact里bin目录的catalina.sh . 在其头部加入

      JAVA_OPTS="

      -Dcom.sun.management.jmxremote

      -Dcom.sun.management.jmxremote.port=8998 这个端口可以改

      -Dcom.sun.management.jmxremote.rmi.port=8998

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

      -Dcom.sun.management.jmxremote.authenticate=ture 需要鉴权 若为false则不需要下两行的配置

      -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password

      -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access

      -Djava.rmi.server.hostname=xxx.xxx.xxx.xxx" 服务器ip地址

    2. 编辑Tomcat里conf目录的server.xml 加入监听器:

         <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="8998" rmiServerPortPlatform="8999" />
      • 其中8998可以改为你想要的端口
    3. 在conf目录新建两个文件

    • jmxremote.access文件内容:

      username  readwrite

      第一个参数是用户名,第二个是这个用户拥有读取/写入权限

    • jmxremote.passwd文件内容:

      username password

      第一个参数为access的文件里的用户名,password为要设置的密码

    1. 去iptables开启刚刚设置的端口,这里为8998
    • vim /etc/sysconfig/iptables
      -A INPUT -p tcp -m state --state NEW -m tcp --dport 8998 -j ACCEPT
    1. 这个时候理论上可以开启visualVM然后添加远程主机监控了,但是由于JMX还需要监听一到两个随机端口。
    • 会报错:

      无法使用service:jmx:rmi连接
    • 解决方法有两种

      1. 是用 jps 得到pid,然后使用 lsof -i|grep {pid} 命令得到监听的其他端口

        然后将在iptables开放。

      2. 关闭iptabels防火墙,service iptables stop。

    • 之后就可以在本地机上开visualVm添加远程主机,不使用ssl连接。开启监控啦

    1. jmx方式只能针对一个jvm,并且不支持visualGC。下面介绍第二种。
  • jstatd方式

    1. 使用cd $JAVA_HOME 到jdk的根目录,bin文件夹里面新建jstatd.all.policy文件。

      • 内容如下:

        grant codebase "file:${java.home}/../lib/tools.jar" {
        permission java.security.AllPermission;
        };
    2. 在bin目录下启动Jstatd。

      • ./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.0.23

        hostname为外网ip。

    3. 这个使用本地主机上使用jps xxx.xxx.xxx.xxx的方式访问远程报错:java.rmi.ConnectException: Connection refused to host: xxx.xxx.xxx.xxx;

      • 原因 : jstatd会随机监听1,2个端口。
      • 解决方法: 同上(用lsof命令查看监听的端口)。
    4. 这个时候visualVM会自动刷新进程,一般两三秒就可以看到远程服务器上的所有jvm进程。

      本文地址:http://www.cnblogs.com/zhengshiqiang47/p/7634522.html

visualVM使用jstatd和jmx连接远程jvm及遇到的问题解决的更多相关文章

  1. VisualVM使用Jstatd和JMX远程监控配置(转载)

    一.Jstatd远程监控服务器配置 jstat可以实时显示本地或远程JVM进程中类装载.内存.垃圾收集.JIT编译等数据.如果要显示远程JVM信息,需要远程主机开启RMI支持,详情如下: 1. 在JA ...

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

    https://my.oschina.net/heroShane/blog/196227 一.启动普通的jar程序 1.执行foo.jar启动命令 java -Dcom.sun.management. ...

  3. jvisualvm_使用jmx连接远程linux应用

    [前提] JVisualVM是由Sun提供的性能分析工具,在Jdk6.0以后的版本中是自带的,如果是用Jdk1.5或以前版本的就得要单独安装了. [1]远程机器需要开启jmx 在使用jvisualvm ...

  4. Hadoop jar配置使用JMX进行远程JVM监控

    背景:  编写了一个MapReduce程序,发现该程序内存占用非常多,需要有一种方法来分析内存详细的占用情况. 可以使用linux上的pmap –d <PID>来看进程逻辑地址空间使用情况 ...

  5. 使用Java VisualVM监控远程JVM

    我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualV ...

  6. visualvm监控jvm及远程jvm监控方法(转)

    VisualVM是Sun的一个OpenJDK项目,其目的在于为Java应用创建一个整套的问题解决工具.它集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览H ...

  7. Java VisualVM监控远程JVM

    我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualV ...

  8. 使用本地JConsole监控远程JVM(最权威的总结)

    问题背景   Tomcat经常崩溃crash,想看看JVM内存使用情况,就想到了用Jconsole监控,以前只是监控本地的JVM,这次要监控远程的,遇到了不少问题.   经过几个小时的努力,参考了众多 ...

  9. 使用本地JConsole监控远程JVM (转)

    问题背景   Tomcat经常崩溃crash,想看看JVM内存使用情况,就想到了用Jconsole监控,以前只是监控本地的JVM,这次要监控远程的,遇到了不少问题.   经过几个小时的努力,参考了众多 ...

随机推荐

  1. 【Luogu1973】仓配置(贪心,线段树)

    [Luogu1973]仓配置 题面 直接找洛谷把... 题解 很明显的贪心吧 按照线段的右端点为第一关键字,左端点第二关键字排序 然后线段树维护区间最小就可以啦 #include<iostrea ...

  2. python数据类型:序列(字符串,元组,列表,字典)

    序列通常有2个特点: 1,可以根据索引取值 2,可以切片操作 字符串,元组,列表,字典,都可以看做是序列类型 我的操作环境:Ubuntu16.04+python2.7 一.字符串类型 >按索引获 ...

  3. 从头编写asp.net core 2.0 web api 基础框架 (5) + 使用Identity Server 4建立Authorization Server (7) 可运行前后台源码

    前台使用angular 5, 后台是asp.net core 2.0 web api + identity server 4. 从头编写asp.net core 2.0 web api 基础框架: 第 ...

  4. Hadoop2.x 体系结构和源码编译

    体系结构 Hadoop1的核心组成包括HDFS和MapReduce.HDFS和MapReduce的共同点就是他们都是分布式的. HDFS是包括主节点NameNode,只有一个,还有很多从节点DataN ...

  5. About Windows 10 SDK Preview Build 17110

    在 Windows Developer Day 活动同时,微软正式 Release 了 Windows 10 SDK Preview Build 17110. Windows 10 SDK Previ ...

  6. c++ 指针总结 函数参数指针调用和堆栈内存的分配原理

    c++中的char指针 这个char指针很有意思,char指针通常有两种初始化形式.一个是使用char数组初始化,一个是使用char变量初始化. c++当中使用双引号括起来的字符串起始已经被编译器初始 ...

  7. syskey——让你的电脑更加安全

    我之前介绍过一个绕过系统登录密码的工具kon-boot,今天介绍的就是可以防止这个工具的方法,也能让你的电脑更加的安全. 这个方法也是我在Youtube上看见的一个方法,还是不错. 方法: win+R ...

  8. 11 个简单的 Java 性能调优技巧

    大多数开发人员理所当然地以为性能优化很复杂,需要大量的经验和知识.好吧,不能说这是完全错误的.优化应用程序以获得最佳性能不是一件容易的事情.但是,这并不意味着如果你不具备这些知识,就不能做任何事情.这 ...

  9. NMEA0183

    NMEA简介 NMEA是全国海洋电子协会(National Marine Electronics Association):国际海上电子协会(National Marine Electronics A ...

  10. 【Bootstrap】优秀小插件收集

    Bootstrap中不乏很多优秀的小插件来让界面更加漂亮.比如之前做过笔记的bootstrap-fileinput,select2,datetimepicker等都是属于这一系列的.这些相对而言比较大 ...