文档

Java™ 教程
隐藏目录
通过JConsole公开资源进行远程管理
教程: Java管理扩展(JMX)
课程:远程管理

通过JConsole公开用于远程管理的资源

使用JMX API将Java应用程序暴露给远程管理可以非常简单,如果您使用开箱即用的远程管理代理和现有的监控和管理工具,如JConsole。

要将应用程序暴露给远程管理,您需要使用正确的属性启动它。此示例显示了如何暴露用于远程管理的Main JMX代理。


安全考虑: 

为了简单起见,此示例禁用了身份验证和加密安全机制。但是,在实际环境中实施远程管理时,您应该实现这些安全机制。 下一步是什么?提供了指向其他JMX技术文档的指针,显示如何激活安全性。


此示例需要Java SE平台的6版本。要远程监视Main JMX代理,请执行以下步骤:

  1. 如果尚未这样做,请将jmx_examples.zip保存到work_dir目录中。
  2. 在终端窗口中使用以下命令解压示例类的捆绑包。
    unzip jmx_examples.zip
    
  3. work_dir目录中编译示例Java类。
    javac com/example/*.java
    
  4. 启动Main应用程序,指定暴露Main用于远程管理的属性。(对于Windows,请使用插入符号(^)而不是反斜杠(\)来将长命令分为多行):
    java -Dcom.sun.management.jmxremote.port=9999 \
         -Dcom.sun.management.jmxremote.authenticate=false \
         -Dcom.sun.management.jmxremote.ssl=false \
         com.example.Main
    

    生成一个确认消息,说明Main正在等待某些事件发生。

  5. 不同的机器上的不同终端窗口中启动JConsole:
    jconsole
    

    显示新建连接对话框,显示可以本地连接的正在运行的JMX代理列表。

  6. 选择远程进程,并在远程进程字段中输入以下内容:
    hostname:9999
    

    在此地址中,hostname是运行Main应用程序的远程计算机的名称,9999是将连接到的开箱即用JMX连接器的端口号。

  7. 单击连接。

    显示运行Main所在的Java虚拟机(Java VM)的当前活动摘要。

  8. 点击MBeans选项卡。

    此面板显示当前在远程MBean服务器中注册的所有MBean。

  9. 在左侧框架中展开MBean树中的com.example节点。

    您将看到由Main创建和注册的示例MBean Hello。如果点击Hello,您将在MBean树中看到其关联的属性和操作节点,即使它正在运行在不同的机器上。

  10. 要关闭JConsole,请选择连接 -> 退出。

上一页: 远程管理
下一页: 创建自定义JMX客户端