基础知识:JMX 的工作原理
Java 管理扩展(JMX)是一种内置框架,允许您在运行时监控和管理 Java 应用程序。它通过受管 Bean(MBeans)暴露关键的 JVM 信息,如内存使用情况、垃圾回收、线程数和类加载。
当连接到像 Applications Manager 这样的监控工具时,这些 MBeans 成为持续的数据源,帮助您:
- 可视化性能指标。
- 检测瓶颈和异常。
- 触发警报和自动响应。
然而,要安全高效地收集这些数据,JMX 需要正确配置。
第一步:在您的环境中启用 JMX 监控
在开始跟踪 JVM 指标之前,您的 Java 应用程序需要启用 JMX。
大多数现代 Java 应用默认包含一个 JMX 代理。该代理通过网络端口向授权工具(如 Applications Manager)公开指标。
在 Applications Manager 中,您只需添加新的 JMX 监视器并指定以下内容:
- 您 Java 应用程序的主机名或 IP 地址。
- JVM 通过其公开指标的 JMX 端口。
- 如果启用安全,则为可选的认证信息。
Applications Manager 会自动连接到 JMX 接口,获取 MBean 属性,并以易读的性能图表和仪表盘形式显示。

第二步:了解代理及其作用
在 JMX 语境中,您可能经常听到代理一词。简单来说,代理使您的 Java 应用程序对监控工具“可见”。
JMX 代理主要有两种类型:
- 本地代理: 在 JVM 内部运行,收集本地指标。适合在同一主机上监控。
- 远程代理: 允许监控工具(如 Applications Manager)通过 TCP/IP 端口从不同主机连接。
Applications Manager 可兼容这两种方式。当您添加新的 JMX 监视器时,工具会与代理通信以:
- 发现所有可用的 MBeans。
- 获取 JVM 和应用层指标。
- 在性能仪表盘上显示它们。
- 当阈值被突破时触发警报。
使用 Applications Manager 时,无需手动安装或配置额外代理。内置的 JMX 支持使得安装快速简便。
第三步:配置 JMX 端口
每个启用 JMX 的 JVM 都会监听一个或多个端口,以接受连接。可以将端口视为 Applications Manager 访问性能数据的“门户”。
端口的重要性
配置 JMX 监控时,需要指定正确的端口,以便 Applications Manager 能与 JVM 建立通信。默认情况下,Java 为 JMX 通信分配一个随机的 RMI(远程方法调用)端口,但在生产环境中,使用固定端口更为合适。
端口配置最佳实践
- 使用固定的 JMX 端口: 这使防火墙配置更容易,并避免多个 JVM 在同一主机上端口冲突。
- 保持端口唯一: 为每个 JVM 实例分配不同的 JMX 端口。
- 限制访问: 确保只有您的 Applications Manager 服务器可以连接到 JMX 端口。
在容器化或云环境中,请确保这些端口通过安全的内部网络暴露,而不是公开互联网。
第四步:保护 JMX 连接
由于 JMX 允许访问敏感的运行时信息,有时还能进行管理操作,其安全性不容忽视。
保护 JMX 配置的三个关键方面:
1. 认证
启用认证,确保只有授权用户或工具能连接到 JMX 接口。Applications Manager 支持通过配置用户名和密码来建立安全连接,确保即使端口开放,只有经过认证的请求才可访问指标。
2. 加密
为防止数据被截获,建议加密 JVM 与 Applications Manager 之间的通信。这通常通过启用 JMX 连接的 SSL(安全套接层)实现。启用 SSL 后,所有数据如指标值和凭据均通过安全网络传输。如果贵组织已有加密通信机制,网络或应用团队可协助配置 JMX SSL 设置,符合现有安全策略。
3. 网络级限制
限制谁可以连接 JMX 端口,为安全增添一层保障。您可以:
- 只允许 Applications Manager 主机访问。
- 限制 JMX 访问到内部 IP 或子网。
- 使用防火墙、VPN 或私有网络路由,避免公开暴露端口。

第五步:验证和测试配置
配置好 JMX 监控后,测试确保一切正常运行。
在 Applications Manager 中:
- 进入添加监视器 → Java/JMX 监视器。
- 输入主机名、JMX 端口和认证信息(如适用)。
- 点击测试凭据。
若连接成功,Applications Manager 会自动发现所有可用 MBeans 并开始轮询指标。您将很快看到包含以下内容的 JVM 性能仪表盘:
- 堆内存和非堆内存使用情况
- 垃圾回收活动
- 线程统计
- 类加载详情
- 如果应用程序暴露,自定义 MBeans
若测试失败,请检查以下几点:
- JMX 端口是否开放且可从 Applications Manager 服务器访问。
- 认证信息是否正确。
- 防火墙规则是否允许通信。
第六步:应用安全最佳实践
除初始设置外,保持 JMX 环境安全可靠需要持续关注。以下是关键建议:
- 定期更换凭据,防止未经授权访问。
- 尽可能限制权限为只读访问。
- 监控 JMX 访问日志,发现异常连接尝试。
- 在 Applications Manager 中使用基于角色的访问控制(RBAC),确保只有授权管理员可以添加或修改 JMX 监视器。
- 定期审查端口配置,并关闭未用或不必要的开放端口。
遵循这些指导,帮助保持可见性与安全之间的良好平衡。
第七步:同时监控 JVM 健康和业务指标
使用 Applications Manager 的一个独特优势是,它不仅追踪 JVM 指标,还能帮助您监控自定义 MBeans。
您的开发团队可以通过自定义 MBeans 暴露应用特定指标,如交易数、队列大小或活动会话数。Applications Manager 会自动检测并将这些指标与 JVM 数据一同可视化,提供系统和业务性能的全貌。
第八步:自动化警报和操作
配置完成后,下一步是自动化。在 Applications Manager 中,您可以设置基于阈值的警报,实时接收内存使用、线程数等关键 JVM 参数超过临界值的通知。
此外,还可配置自动纠正操作,如重启服务或清理缓存,及时响应问题,无需人工干预。
此自动化层将 JMX 监控从被动数据源转变为主动性能管理工具,助力维护正常运行和稳定性。

常见配置场景
以下是 Applications Manager 中几个实际 JMX 监控设置示例:
| 场景 | 配置 | 备注 |
|---|---|---|
| 监控本地 Java 应用 | 使用默认 JMX 代理和本地主机连接 | 简单快速设置 |
| 监控远程 JVM | 配置固定 JMX 端口,进行网络连接 | 使用认证保障安全 |
| 监控多个 JVM | 为每个实例分配不同的 JMX 端口 | 避免端口冲突 |
| 云或容器化应用 | 使用内部服务网络 | 限制外部访问 |
| 企业级安全配置 | 启用 SSL 和防火墙限制 | 生产环境推荐 |
几分钟内完成配置!
配置 JMX 监控不必复杂。借助正确配置和功能强大的 Applications Manager,您可以精准、安全、自信地监控 Java 应用程序。
通过正确配置代理、端口和安全设置,确保您的 JMX 监控环境可靠、可扩展且安全,提供 JVM 性能和业务运营的可操作见解。
准备好了解它的工作原理了吗?立即下载 ManageEngine Applications Manager 免费 30 天试用版!

