配置Java远程监控授权(Java Mission Control)

转载URL:  http://www.icoolxue.com/blog/show/9

最近公司做的项目有比较严重的内存溢出问题,也不知道是荣幸还是郁闷,经理将该问题交给我去自处理,经过一系列的Google,最终决定用Java Mission Control(JMC)来查找项目的内存溢出问题出在哪。

Java Mission Control(JMC)最先是由BEA公司开发的JRockit(后被Oracle收购)所附带的一个用于查找Java内存溢出问题的利器,在最近的Java8中,默认已经带上了此组件,掌握好JMC的使用能让你在处理内存溢出问题是如鱼得水。

JMC界面

JMC的使用以后再说,现在先配置服务器端(也就是说你要监控的对象),配置JMC主要就是在启动Java程序的时候加上一系列参数(以Tomcat为例,在catalina.bat 或catalina.sh中增加如下配置):

CATALINA_OPTS="-Dcom.sun.management.jmxremote.port=8901-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=true-Dcom.sun.management.jmxremote.password.file=jmxremote.password-Dcom.sun.management.jmxremote.access.file=jmxremote.access-Djava.rmi.server.hostname=172.16.41.89"

需要注意几点:

  1. 如果要允许其它机器监控该程序,必须指定-Djava.rmi.server.hostname=,如果不指定该配置,那么就只能在本机监控该程序。
  2. 如果要控制监控的授权(让特定的用户才能连接JMX服务),需要设置-Dcom.sun.management.jmxremote.authenticate=true,如果设置为false则不需要授权。
  3. 如果要授权,需要指定两个文件:jmxremote.password和jmxremote.access,password文件主要是配置用户名和密码,access主要是配置权限(可读或者读写)。

在Tomcat的bin目录下增加下面两个文件:jmxremote.password和jmxremote.access,格式如下:

jmxremote.access:admin readwritemonitor readonly

表示admin有操作权限(比如调用GC等操作),monitor只有查看权限,不能进行任何操作。

jmxremote.password:admin testmonitor test

表示有两个用户,admin和monitor,密码分别是test和test。

配置好这些参数后,执行sudo ./startup.sh就可以启动Tomcat了,启动Tomcat后,在客户机上启动JMC客户端,然后创建一个新的连接:

如上图所示,在Host上填入IP或者域名,Port填上你配置的端口号。如果你启用了授权机制,在User和Password中填入相应的字段就可以了。Connection name可以填入一个你认为比较好记的字符串,一切填入妥帖后,点击Test Connection就可以测试一下是否正确,如果不正确,请回到服务器端配置了参数,测试成功点击Finish即可。

配置Java远程监控授权(Java Mission Control)相关推荐

  1. java 远程监控文件系统_Java 文件系统监控(WatchService)

    文件系统监控这种场景应用非常广,比如spring boot里面的devtool,它就是监控文件系统,当文件一改变(增.删.改),它就会重新加载. 直接上代码 import java.io.IOExce ...

  2. java远程监控服务器配置_JAVA VirtualVM远程监控配置

    Virtual VM是JDK6 Update7之后推出的工具,有集合其它JDK工具的倾向,目前JDK7的版本已经支持绝大部分的监控功能,好像还不能像Jprofile和Youkit那样支持实时跟踪内存堆 ...

  3. 配置JMC远程监控linux上的java程序

    被监测服务jar包需要加启动参数: -Dcom.sun.management.jmxremote.port=9999(被监测jmc端口) -Dcom.sun.management.jmxremote. ...

  4. java远程监控系统代码_[源码和文档分享]基于JAVA的远程屏幕监控系统

    远程屏幕监控系统在生活中是很常见的,学校机房的机房管理系统.PC版QQ的远程演示功能等都属于远程屏幕监控系统.监控系统的原理是通过客户端不断的截取屏幕发送到服务器端,服务器端进而将画面呈现出来的过程. ...

  5. java socket监控_ZeroMQ(java)中监控Socket

    基本上ZeroMQ(java)中基本的代码都算是过了一遍了吧,不过觉得它在日志这一块貌似基本没有做什么工作,也就是我们通过日志来知道ZeroMQ都发生了什么事情.. 而且由于ZeroMQ中将连接的建立 ...

  6. java远程执行jmi,java调用matlab 时出现java.lang.NullPointerException错误

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这是错误日志 Error occurred during initialization of VM Unable to load ZIP library: ...

  7. java远程计算机终止,java - javax.net.ssl.SSLHandshakeException:远程主机终止了握手 - 堆栈内存溢出...

    我已经使用以下命令在Java信任库(cacerts)中安装了证书: keytool-导入-文件" C:\\ Users \\ kdursoji \\ Downloads \\ Zscaler ...

  8. 海康威视配置DDNS远程监控

    教程: http://www.hikvision.com/cn/support_more.asp?id=224 一. 配置路由器 192.168.1.1 转发规则 --> UPnP设置 --&g ...

  9. java毕业设计——基于java+Socket+sqlserver的远程监控系统软件设计与实现(毕业论文+程序源码)——远程监控系统

    基于java+Socket+sqlserver的远程监控系统软件设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+Socket+sqlserver的远程监控系统软件设计与实现,文章 ...

最新文章

  1. NumPy 手写所有主流 ML 模型,由普林斯顿博士后 David Bourgin打造的史上最强机器学习基石项目!...
  2. 致远互联“平台+生态”抢占数字化升级新赛
  3. 解决tomcat was unable to start within问题
  4. 【Flutter】Flutter 应用主题 ( ThemeData | 动态修改主题 )
  5. java:BIO, NIO
  6. 面试总结-腾讯产品群面
  7. php 逗号编码,php有几种编码
  8. php asp 发起post请求,PHP用curl函数POST请求到ASP页面提示无效请求
  9. YOLOv3目标检测有了TensorFlow实现,可用自己的数据来训练
  10. 深度学习 tensorflow 计算图,会话,张量
  11. no symbol version section for versioned symbol `memcpy@GLIBC_2.4'
  12. Opencv系列1_opencv对单张DCM文件的读取并显示
  13. 计算机的优势和劣势_计算机专业毕业生考研还是就业应该怎么选?
  14. css 背景图片虚化磨砂效果
  15. 密探查询系统服务器码,车辆国几排放查询
  16. 中考考试的指令广播_考试时间指令(铃声).doc
  17. (Hopcroft-Carp二分图匹配)Rain on your Parade
  18. Perspectives
  19. 【原创】为什么要用规则引擎?
  20. 用AI培养孩子学习兴趣:讯飞新一代智能学习机发布

热门文章

  1. Selenium_获取相对坐标
  2. 演出经纪人考试大纲、演出经纪人考试资料是什么?
  3. uni-app实战之社区交友APP(4)首页开发
  4. 《操作系统原理》 记录 (41)
  5. 你好,我是社恐患者的猫
  6. 程雷被机器人_机器人登台表演节目?程雷惨遭机器人戏耍郭德纲一旁大笑!
  7. Mac键盘锁住了怎么办
  8. Oracle数据库之表空间(tablespace)---面试再也不害怕系列之一
  9. PC 真的不行了!Intel、AMD 同遭生死劫
  10. 用户 '****' 登录失败