`
zhaohaolin
  • 浏览: 1016433 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java VisualVM远程监控配置

    博客分类:
  • JAVA
 
阅读更多

方案发起原因:

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

分享到:
评论

相关推荐

    visualvm监控jvm及远程jvm监控方法

    - **配置远程JVM**:远程JVM需要开启JMX服务,并设置必要的安全策略。在JVM启动参数中添加`-Dcom.sun.management.jmxremote`等相关选项。 - **连接远程JVM**:在VisualVM的"Remote"选项卡中,输入远程主机的IP地址...

    Java内存监控工具Java VisualVM

    如果目标是监控Tomcat服务器,则需要在`catalina.bat`文件中配置`JAVA_OPTS`环境变量来启用远程监控功能。具体配置如下: ```plaintext set JAVA_OPTS=-server-Xms1024m-Xmx1024m-XX:PermSize=128m-XX:MaxPermSize=...

    java远程监控,有源码的

    - "java-remote-control"很可能包含了一个简单的JMX远程监控示例,包括服务器端的MBean实现、MBean Server配置以及客户端的连接和控制代码。 - 开发者可以通过阅读源码了解如何创建和注册MBean,设置JMX连接器,并...

    java jvisualvm 监控weblogic配置方法

    ### Java VisualVM 监控 WebLogic 配置详解 #### 一、Java VisualVM 概述及环境配置 Java VisualVM 是一个强大的工具,用于监控和分析 Java 应用程序的性能。它自 JDK 1.6 版本起集成在 JDK 中,允许开发者和系统...

    java 远程监控程序JSN

    Java远程监控程序JSN是一种用于监视和管理分布式Java应用程序的工具。它允许开发者或系统管理员在不中断应用程序运行的情况下收集性能数据、诊断问题并进行优化。JSN(Java Server Monitoring)通常包括各种功能,如...

    VisualVM 免费下载

    7.远程监控 8.CPU分析器 9.内存分析器 10.线程分析器 使用场景 性能调优:开发人员可以使用VisualVM来监控Java应用程序的性能指标,如CPU使用率、内存使用率等,从而快速定位性能瓶颈并进行优化。 故障排查:当Java...

    jvisualvm远程访问Linux环境中tomcat

    jvisualvm 是一个功能强大且功能丰富的 Java 监控和 profiling 工具,它可以远程访问和监控 Java 应用程序,包括 Tomcat 应用服务器。下面将详细介绍如何使用 jvisualvm 远程访问 Linux 环境中的 Tomcat。 jdk 的...

    Java VisualVM监控远程JVM(详解)

    在远程监控方面,VisualVM 支持两种连接方式:jstatd 和 JMX(Java Management Extensions)。本文将详细介绍如何通过 JMX 方式配置并监控远程的 JVM 进程。 首先,要通过 JMX 方式监控远程 JVM,需要在远程主机上...

    jvisualvm操作手册for linux菜鸟

    在使用VisualVM远程监控JVM之前,需要准备好测试环境。我们需要在服务器上配置jstatd守护程序,并在客户端使用VisualVM连接服务器监控Java程序。 ### 2.2 在服务器上配置 jstatd 的 security policy 文件 在服务器...

    VisualVm虚拟机监控工具

    VisualVM支持JMX(Java Management Extensions),允许远程监控和管理Java应用程序。开发者可以通过JMX连接到应用,获取运行时信息,甚至修改应用程序的配置。 六、插件扩展性 VisualVM的一大亮点是其强大的插件...

    84_Java远程监控系统.zip

    在压缩包中的"84_Java远程监控系统"可能包含了实现以上概念的代码示例、配置文件或教程,帮助用户理解和实践Java远程监控。通过学习和理解这个系统,开发者可以更好地优化和维护他们的Java应用,及时发现和解决问题...

    visualvm 中文版

    VisualVM可以连接到MBeans服务器,查看和操作MBeans,从而远程管理Java应用程序,执行配置更改或获取运行时信息。 5. **CPU和内存分析**: VisualVM可以深入到CPU使用率的详细级别,展示每个线程的执行情况,帮助...

    最新版java JVM 工具 visualvm_20.zip

    2. **JMX支持**:通过Java Management Extensions (JMX),VisualVM能够远程连接到运行中的JVM,获取其配置信息,甚至进行管理和操作。 3. **内存分析**:内存分析是VisualVM的一大亮点,它可以显示堆内存的详细使用...

    visualvm中文版

    VisualVM是一款强大的Java虚拟机(JVM)监控和分析工具,由Oracle公司开发并提供,是Java开发者进行性能调优的得力助手。它集成了多种功能,包括内存分析、线程检查、CPU使用率监控、类加载和垃圾回收查看等,能够...

    可视化性能监控工具VisualVM

    2. **连接远程JVM**:如果需要监控远程Java应用,需要在目标机器上配置JDK的`jvm.options`文件,开启远程监控端口,然后在VisualVM中添加远程主机。 3. **选择分析模块**:根据需求选择合适的分析模块,例如选择...

    Visualvm 基于JAVA的CPU硬件资源管理器源程序.rar

    5. **JMX支持**: VisualVM可以通过JMX接口远程监控Java应用程序,收集运行时数据,实现远程管理和配置。 6. **源代码查看**: 如果压缩包包含了源代码,那么开发者可以直接在VisualVM中查看和分析代码,进一步理解...

    visualVM插件包Branch GC等

    - 使用VisualVM实时监控Java应用,及时发现性能异常。 - 分析GC日志,结合VisualVM插件理解垃圾收集行为。 - 调整JVM参数以优化GC效率,例如调整新生代和老年代的大小,选择合适的GC策略。 - 观察线程和方法调用...

    jvm监控工具visualVM

    支持通过JMX(Java Management Extensions)接口远程监控Java应用,获取自定义的MBean(Managed Beans)信息。 6. **内存快照** 提供内存快照功能,可以对比不同时间点的内存分配情况,帮助识别内存泄漏。 7. **...

    Java8 VisualVM 插件.zip

    5. **JMX支持**:VisualVM支持JMX(Java Management Extensions),可以远程监控和管理Java应用程序。 Java 8 VisualVM插件主要包含以下组件: 1. **JFR(Java Flight Recorder)插件**:这是Oracle JDK 8引入的一...

Global site tag (gtag.js) - Google Analytics