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. 英文汉语切换的导航栏,纯css制作。

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  2. 【Luogu2900】土地征用(斜率优化,动态规划)

    [Luogu2900]土地征用(斜率优化,动态规划) 题面 Description 农夫John准备扩大他的农场,他正在考虑N (1 <= N <= 50,000) 块长方形的土地. 每块 ...

  3. [BZOJ3293] [Cqoi2011] 分金币 (贪心)

    Description 圆桌上坐着n个人,每人有一定数量的金币,金币总数能被n整除.每个人可以给他左右相邻的人一些金币,最终使得每个人的金币数目相等.你的任务是求出被转手的金币数量的最小值. Inpu ...

  4. iOS开发--XMPPFramework--好友列表(五)

    上一篇文章,我们讨论了调试和好友模块,这一篇,在引入了好友模块后,我们来说说好友列表的显示. 还记得在上一篇中,我们把自动拉去好友列表给关掉了,所以,我们选择在控制器的-(void)viewDidLo ...

  5. sql server 2008 sql prompt 自动提示

    sql server 2008 在编写SQL脚本的时候,总是希望能提示一些信息,或者自动提示需要查询的表的名字,或者表的基本信息,sql server默认会有一些提示的,如果没有可以设置工具--> ...

  6. 【bzoj2151】种树

    Time Limit: 1000ms                     Memory Limit: 128MB Description A城市有一个巨大的圆形广场,为了绿化环境和净化空气,市政府 ...

  7. Springboot项目如何把项目运行在服务器上

    作为一个开发者,不可避免的要把本地项目变成可以接入外网的上线项目,今天来记录下springboot框架下如果把项目打包放在服务器上运行 第一步,首先要买个服务器,这个一般甲方会提供 第二步,导入jar ...

  8. Ceph常见问题百科全书

    Ceph是目前炙手可热的一个统一分布式存储系统,具有优异的性能.可靠性.可扩展性.其可轻松扩展到数 PB 容量, 支持多种工作负载的高性能(每秒输入/输出操作[IOPS]和带宽),具有极其高的可靠性. ...

  9. ubuntu字符界面怎么设置中文显示和中文输入

    在ubuntu的字符登陆界面,中文显示默认是乱码的,而且也不支持中文输入,解决方法有很多, 1)安装zhcon--解决中文显示乱码的问题. sudo apt-get install zhcon 然后c ...

  10. aspnetcore.webapi实践k8s健康探测机制 - kubernetes

    1.浅析k8s两种健康检查机制 Liveness k8s通过liveness来探测微服务的存活性,判断什么时候该重启容器实现自愈.比如访问 Web 服务器时显示 500 内部错误,可能是系统超载,也可 ...