Java VisualVM远程监控配置

方案发起原因:

Java VisualVM是JDK 6自带的,可视化监控运行中的Java应用程序的详细信息,帮助排除故障和应用程序分析。 Java VisualVM包含有过去独立的JConsole、 jstat、 jinfo、 jstack和 jmap 工具,这就大为提高了监控和应用程序性能的效率。

Java开发人员通过分析Java VisualVM监控生成的堆转储,内存泄漏,MBeans操作,垃圾收集,轻量级的内存和CPU信息,可快速解决应用程序的监控,以提高应用程序的性能。

在实际生产过程中,通常是需要远程监控服务器端应用性能,而远程监控需要一系列的配置,这里我们通过配置一个远程监控来了解Java VisualVM的工作原理。

实验环境:

WebLogic版本:Oracle WebLogic 10 SP3

服务器端操作系统:Red Hat Enterprise Linux AS release 5

客户端操作系统:Microsoft Windows XP SP2

Java VisualVM版本:6.0.180.0

步骤一:

在Oracle WebLogic 10.3启动脚本JAVA_OPTIONS项中加入如下参数:

-Dcom.sun.management.jmxremote.port=6001
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

指定jmxremote的监控端口和password文件路径,是否需要验证和SSL。

步骤二:

将服务器上Oracle WebLogic 10.3对应的$JAVA_HOME/jre/lib/management/jmxremote.password.template 复制到新建的$JMXRemote_HOME目录下,命令为:

cp $JAVA_HOME/jre/lib/management/jmxremote.password.template  $JMXRemote_HOME/jmxremote.password

对$JMXRemote_HOME目录更改权限,权限为:

chmod 700 $JMXRemote_HOME/jmxremote.password

修改jmxremote.password文件,将monitorRole  QED前的注释去掉,使客户端连接的角色为监控者,如图:

wps_clip_image-19764

步骤三:

查看主机IP地址,命令为: hostname -i ,如果IP为 127.0.0.1 ,则需要修改/etc/hosts中的主机IP,将主机的IP和主机名对应起来,如图:

wps_clip_image-194

步骤四:

运行WebLogic启动脚本,查看jmxremote监控端口是否打开

在启动日志中会出现这么一行提示信息:

Management server started on port 6001, ssl=false, authenticate=false.

wps_clip_image-3960

WebLogic启动完成后,运行命令行:

netstat -na|grep 6001

wps_clip_image-25120

当看到jmxremote监控端口6001已经打开,那么在服务器端的配置工作就完成。

步骤五:

打开客户端的Java VisualVM,路径如下: $JAVA_HOME/bin/jvisualvm.exe

可以看到如下界面:

wps_clip_image-15611

步骤六:

添加远程主机,jstatd连接端口可以和JVM监听端口相同,也可以随机设,如图:

wps_clip_image-1635

步骤七:

添加JMX连接,当监听器设置如图:

wps_clip_image-25836

注:“步骤一 ”中jmxremote.authenticate=false,所以“使用安全凭证”设不设都没关系。

双击JMX连接,打开监控的对象,如图:

wps_clip_image-32511

局部放大,如图:

wps_clip_image-7662

这里我们可以看到服务器端运行的Java应用程序监控信息,如CPU、堆、类、线程等。

到这里就完成了整个Java VisualVM的远程监控配置。

常见问题:

1、Java VisualVM的远程配置步骤较多,尤其是容易忽略hosts的修改,造成WebLogic启动时,主机名解析异常,建立虚拟主机失败,如下:

Error: Exception thrown by the agent:java.net.MalformedURLException: Local host name  unknown: java.net.UnknownHostException: MyLinux: MyLinux
 [JRockit] Failed to start the management agent. Note that the management agent requires that you either explicitly disable security or that you configure and enable security. Please see the documentation for details.
 java.lang.RuntimeException: Exception thrown by the agent
        at sun.management.Agent.error(Agent.java:303)
        at sun.management.Agent.error(Agent.java:294)
        at sun.management.Agent.startAgent(Agent.java:151)
        at sun.management.Agent.startAgent(Agent.java:239)
        at bea.jrockit.management.server.Main.start0(Main.java:297)
        at bea.jrockit.management.server.Main.access$000(Main.java:51)
        at bea.jrockit.management.server.Main$2.run(Main.java:386)
        at bea.jrockit.management.server.Main.start(Main.java:384)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl. java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at jrockit.management.AgentStarter.startAgent(AgentStarter.java:135)

 Could not create the Java virtual machine.

解决方案参照“步骤三 ”。

2、当com.sun.management.jmxremote.authenticate=true(默认为true);并且jmxremote.password文件对其他用户权限设置过大,就会报如下错误信息:

Error: Password file read access must be restricted: /app/bea103/jconsole/jmxremote.password

解决方案有:

方案(1):这是更改文件权限

chmod 700 $JMXRemote_HOME/jmxremote.password

方案(2):取消验证功能,在启动脚本JAVA_OPTIONS项中加入如下参数:

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

3、当com.sun.management.jmxremote.authenticate=true ,但是没有创建jmxremote.password文件,就会报如下错误信息:

Error: Password file not found: $JAVA_HOME/jre/lib/management/jmxremote.password

因为默认情况下,jmxremore.password单独需要创建,解决方案参照“步骤二 ”。

4、当com.sun.management.jmxremote.authenticate=true ,创建Java VisualVM的 JMX时必须要使用“安全凭证”,根据jmxremote.password中设置的Role,输入账号,对应关系是:

monitorRole  QED
controlRole  R&D

java , monitor , VisualVM , weblogic

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值