VisualVM连接远程服务器有两种方式:JMX和jstatd,两种方式都不能完美支持所有功能,例如JMX不支持VisualGC,jstatd不支持CPU监控,实际使用可同时配置上并按需选用。

1.修改tomcat/bin目录下catalina.sh文件

JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=${host_ip}
                                                     -Dcom.sun.management.jmxremote.port=9999
                                                     -Dcom.sun.management.jmxremote.ssl=false 
                                                     -Dcom.sun.management.jmxremote.authenticate=false"

重启tomcat。需要保证添加的port没有被其他服务占用。方法:netstat -tlnp | grep 9999。

2. 打开visualvm,通过远程添加新增目标主机。右击添加的目标主机,添加jmx连接。将9999加上去。

3. 如果需要使用远程visual gc插件。则需要在JAVA_OPTS中加上jstatd的配置。

3.1 vi $JAVA_HOME/jre/lib/security/java.policy  --一般不建议直接修改这个文件

末尾的}处添加permission java.security.AllPermission;

3.2 按照下面命令启动后会开启注册端口1099和一个随机的连接端口,注册端口也可通过-p参数指定

jstatd -J-Djava.security.policy=all.policy -p 10003 &

trouble shoot 排错

-- 检查linux的hostname匹配的IP

hostname -i

如果匹配的结果是无法识别或者127.0.0.1, 则需要手动配置主机名和IP映射。假设IP是192.168.0.1,主机名是genious:

vi /etc/hosts

添加一行192.168.0.1  genious。重启服务。运行hostname genious可以更改主机。

-- 如果出现无法连接。先查看端口是否开放。

telnet host_ip 9999 如果没开放则会提示connect refused。

-- 如果没有开放。则需要编辑iptables来开放。

/sbin/iptables -I INPUT -p tcp --dport 8000 -j ACCEPT #开启8000端口

/etc/rc.d/init.d/iptables save #保存配置

/etc/rc.d/init.d/iptables restart #重启服务

-- 查看端口是否已经开放

service iptables status

-- 如果没开放则输入

iptables -I INPUT -p tcp --dport 9999-j ACCEPT #开启9999 tcp端口

service iptables save #保存配置

service iptables restart #重启服务

如果iptables编辑后依然无效。可先关闭iptables

service iptables stop 关闭

service iptables start 启动

visualvm添加远程管理-centos的更多相关文章

  1. mysql 添加远程管理用户

    GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;   这一条是添加全权限的用户,用户名和密码 ...

  2. 给vmware虚拟机设置Ip,使用xshell远程连接Centos

    参考下面两位的分享才弄好,发表之前先对原作者表示感谢! 给Centos配置网络以及使用xshell远程连接Centos http://www.cnblogs.com/fuly550871915/p/4 ...

  3. (二)给Centos配置网络以及使用xshell远程连接Centos

    好吧,我对网络协议以及ip配置知识的匮乏,让我在这里折腾了将近一天才搞定.可以说基本上网上遇到的问题我都遇到了.在这里,记下正确的步骤来给Centos配置网络.希望以后少走弯路. 首先我要说明的是,我 ...

  4. CentOS下开启mysql远程连接,远程管理数据库

    当服务器没有运行php.没装phpmyadmin的时候,远程管理mysql就显得有必要了.因为在CentOS下设置的,所以标题加上了CentOS,以下的命令在debian等系统下应该也OK. mysq ...

  5. Linux/CentOS下开启MySQL远程连接,远程管理数据库

    当服务器没有运行PHP.没装phpMyAdmin的时候,远程管理MySQL就显得有必要了. 第一步:开启MySQL用户的远程访问权限 mysql -u root -p mysql # 第1个mysql ...

  6. CentOS vps下,安装xfce/KDE/GNOME桌面+vncserver进行远程管理

    CentOS vps下,安装xfce/KDE/GNOME桌面+vncserver进行远程管理 首先安装桌面环境,我选择的是xfce,轻量级桌面,小巧实用不占太多内存,(占用内存方面,xfce少于kde ...

  7. git添加本地的项目到git远程管理仓库

    目标:将本地存在的项目添加到git远程仓库管理 步骤: 1. 需要一个git远程仓库管理地址 例如:https://github.com/xingfupeng/test.git git@github. ...

  8. 使用VisualVM监控远程服务器JVM

    VisualVM是JDK自带的一款全能型性能监控和故障分析工具,包括对CPU使用.JVM堆内存消耗.线程.类加载的实时监控,内存dump文件分析,垃圾回收运行情况的可视化分析等,对故障排查和性能调优很 ...

  9. VisualVM监控远程服务器JVM

    VisualVM是JDK自带的一款全能型性能监控和故障分析工具,包括对CPU使用.JVM堆内存消耗.线程.类加载的实时监控,内存dump文件分析,垃圾回收运行情况的可视化分析等,对故障排查和性能调优很 ...

随机推荐

  1. Hue协作框架

    http://archive.cloudera.com/cdh5/cdh/5/hue-3.7.0-cdh5.3.6/manual.html 一:框架 1.支持的框架 ->job ->yar ...

  2. QComboBox

    #include "dialog.h" #include "ui_dialog.h" #include <QtCore> #include < ...

  3. 20145211 《Java程序设计》课程总结——桃花流水窅然去

    每周读书笔记链接汇总 20145211 <Java程序设计>第1周学习总结--小荷才露尖尖角 20145211 <Java程序设计>第2周学习总结--桃花依旧笑春风 20145 ...

  4. Java学习-035-JavaWeb_004 -- JSP include 指令

    inclue 指令是将不同的文件插入到 JSP 网页中,这些文件可以是文本文件.HTML文件.JSP 文件,指令语法如下: <%@include file="相对路径"%&g ...

  5. Windows-005-显示隐藏文件

    此文主要讲述如何设置 Win7 系统显示隐藏的文件.文件夹和驱动器,敬请亲们参阅.若有不足之处,敬请大神指正,不胜感激!详情如下: Win7 系统安装完成后,默认是不显示隐藏的文件.文件夹和驱动器的( ...

  6. nginx支持cgi(c,c++)

    前段时间用我修改了tinyhttpd,让其cgi支持文件流,感觉满小巧,就应用上了.最近访问请求量上来而来,它对socket的各种异常状态处理不好,对于慢速的链接会占用我的线程.虽然我一直想仿出ten ...

  7. c# ini file

    ini文件主要用于保存配置.之前一直以为是当作普通文本进行操作,读取里面的内容,再自己解析读取的文本.后来发现已经有写好的api函数:WritePrivateProfileString()和GetPr ...

  8. LogBack配置详解(一)

    一:根节点<configuration>包含的属性: scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true. scanPeriod: 设置监测配置文 ...

  9. meta的学习记录

    meta的学习记录 最近再学响应式的布局,就先来总结一下我们的viewport. 什么是viewport呢? 手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,通常这个虚拟的“窗口”(v ...

  10. C#对象的声明与实例化

    在代码中我们经常能看到下面这样的语句. A a = new A();(1) B b = null;(2) C c;(3) 代码( 1 ) 创建 A 的对象并对其进行初始化. A :类: new A() ...