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

如果使用现成的远程 管理 代理以及现有的监视和 管理 工具(例如 JConsole),则使用 JMX API 公开 Java 应用程序以进行远程 管理 非常简单。

要公开您的应用程序以进行远程 管理,您需要使用正确的属性启动它。此示例显示如何公开Main JMX 代理以进行远程 管理。

Security consideration:

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

此示例需要 Java SE 平台的版本 6.要远程监视Main JMX 代理,请按照下列步骤操作:

  • 如果尚未这样做,请将jmx_examples.zip保存到work_dir目录中。

  • 通过在终端窗口中使用以下命令来解压缩 samples 类包。

unzip jmx_examples.zip
  • work_dir目录中编译示例 Java 类。
javac com/example/*.java
  • 启动Main应用程序,指定为远程 管理 公开Main的属性。 (对于 Windows,使用克拉(^)而不是反斜杠(\)将 Long 命令分成多行):
java -Dcom.sun.management.jmxremote.port=9999 \
     -Dcom.sun.management.jmxremote.authenticate=false \
     -Dcom.sun.management.jmxremote.ssl=false \
     com.example.Main

生成确认Main正在 await 发生的事情。

  • 不同机器 上的另一个终端窗口中启动 JConsole:
jconsole

将显示“新建连接”对话框,其中提供了可以在本地连接的正在运行的 JMX 代理的列表。

  • 选择“远程进程”,然后在“远程进程”字段中键入以下内容:
hostname:9999

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

  • Click Connect.

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

  • 单击“ MBeans”选项卡。

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

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

您将看到由Main创建和注册的示例 MBean Hello。如果单击Hello,即使 MBean 树在另一台计算机上运行,也会在 MBean 树中看到其关联的“属性和操作”节点。

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