jmx配合jvisualvm远程监控Java程序

jvisualvm和jmx都是JDK自带的工具

jvisualvm的位置在$JAVA_HOME/bin目录下

Windows下可以双击exe启动,也可以命令行启动 

 

远程主机配置jmx:

1、

找到配置文件$JAVA_HOME/jre/lib/management/jmxremote.password.template,复制一份并改名为jmxremote.password,然后打开jmxremote.passwrod,取消以下两行注释:

#monitorRole QED
#controlRole  R&D

其中monitorRole就是监控的账号名,后面是密码,最好把密码改了,不然要密码也没有什么意义,比如改为QED123456。

2、

修改所要启动的java程序的启动参数(JVM_OPTS)。如果是linux下的tomcat,则打开tomcat的bin目录下的catalina.sh(windows下应该是catalina.bat,windows下怎么处理请自行谷歌百度),加入以下内容(非tomcat程序也类似):

JAVA_OPTS="$JAVA_OPTS   -Djava.rmi.server.hostname=192.168.236.20 \

-Dcom.sun.management.jmxremote.port=18999 \       

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

-Dcom.sun.management.jmxremote.authenticate=true"

其中参数hostname=192.168.236.20是远程主机的ip,port=18999就是jmx监听的端口,等待jvisualvm连接。

其中最后一个参数authenticate表示是否需要密码认证,如果是生产环境,为了安全最好赋值为true,这样第1步设置的密码也有了真正的用处。

3、

很重要,你需要监控的程序是由哪个用户启动,则把jmxremote.password文件的权限改为这个用户的只读权限,否则启动程序会报错:Error: Password file read access must be restricted。其实这些在jmxremote.password里的注释都有说明。

比如,如果你是用root用户启动tomcat,则先执行

chown root jmxremote.password

再执行

chmod 400 jmxremote.password

4、

启动待监控的程序,比如tomcat

 

本地启动jvisualvm:

5、

启动jvisualvm,左边栏,右键“远程”>>“添加远程主机”


左侧栏,右键刚才添加的远程主机>>“添加jmx链接”


其中用户名和口令就是第一步中配置的用户名和密码。点击“确定”。


至此,应该就可以监控到远程主机上java程序的运行状况了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值