4.2. 注册 JMX MBeans
Data Grid 可以注册可以用来收集统计信息并执行管理操作的 JMX MBeans。您还必须启用统计信息,否则 Data Grid 为 JMX MBeans 中的所有统计属性提供 0
值。
只有在 Data Grid 嵌入于应用程序中而不是远程 Data Grid 服务器时,使用 JMX Mbeans 来收集统计信息。
当您使用 JMX Mbeans 从远程 Data Grid 服务器收集统计信息时,从 JMX Mbeans 接收的数据可能与 REST 等其他 API 接收的数据不同。在这种情况下,从其他 API 接收的数据更为准确。
流程
- 打开 Data Grid 配置以进行编辑。
-
将
jmx
元素或对象添加到缓存容器,并将true
指定为enabled
属性或字段的值。 -
添加
domain
属性或字段,并指定公开 JMX MBeans 的域(如果需要)。 - 保存并关闭您的客户端配置。
JMX 配置
XML
<infinispan> <cache-container statistics="true"> <jmx enabled="true" domain="example.com"/> </cache-container> </infinispan>
JSON
{ "infinispan" : { "cache-container" : { "statistics" : "true", "jmx" : { "enabled" : "true", "domain" : "example.com" } } } }
YAML
infinispan: cacheContainer: statistics: "true" jmx: enabled: "true" domain: "example.com"
4.2.1. 启用 JMX 远程端口
提供唯一的远程 JMX 端口,以通过 JMXServiceURL 格式的连接公开数据网格 MBean。
您可以使用以下方法之一启用远程 JMX 端口:
- 启用需要向其中一个 Data Grid 服务器安全域进行身份验证的远程 JMX 端口。
- 使用标准 Java 管理配置选项手动启用远程 JMX 端口。
先决条件
-
对于带有身份验证的远程 JMX,请使用默认安全域定义 JMX 特定的用户角色。用户必须具有具有读/写访问权限的
controlRole
,或者具有只读访问权限的monitorRole
才能访问任何 JMX 资源。Data Grid 会自动将全局ADMIN
和MONITOR
权限映射到 JMXcontrolRole
和monitorRole
角色。
流程
使用以下方法之一启动启用了远程 JMX 端口的 Data Grid 服务器:
通过端口
9999
启用远程 JMX。bin/server.sh --jmx 9999
警告在生产环境中不适用于禁用 SSL 的远程 JMX。
在启动时将以下系统属性传递给 Data Grid 服务器。
bin/server.sh -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
警告启用没有身份验证或 SSL 的远程 JMX 不安全,在任何环境中都不推荐使用。禁用身份验证和 SSL 允许未授权用户连接到服务器并访问托管的数据。
其他资源
4.2.2. Data Grid MBeans
Data Grid 公开了代表可管理资源的 JMX MBeans。
org.infinispan:type=Cache
- 可用于缓存实例的属性和操作。
org.infinispan:type=CacheManager
- 可用于缓存管理器的属性和操作,包括数据网格缓存和集群健康统计信息。
有关可用 JMX MBeans 的完整列表以及描述和可用的操作和属性,请参阅 Data Grid JMX 组件 文档。
其他资源
4.2.3. 在自定义 MBean 服务器中注册 MBeans
Data Grid 包含一个 MBeanServerLookup
接口,可用于在自定义 MBeanServer 实例中注册 MBeans。
先决条件
-
创建
MBeanServerLookup
的实现,以便getMBeanServer ()
方法返回自定义 MBeanServer 实例。 - 配置数据网格以注册 JMX MBeans。
流程
- 打开 Data Grid 配置以进行编辑。
-
将
mbean-server-lookup
属性或字段添加到 Cache Manager 的 JMX 配置。 -
指定
MBeanServerLookup
实施的完全限定名称(FQN)。 - 保存并关闭您的客户端配置。
JMX MBean 服务器查找配置
XML
<infinispan> <cache-container statistics="true"> <jmx enabled="true" domain="example.com" mbean-server-lookup="com.example.MyMBeanServerLookup"/> </cache-container> </infinispan>
JSON
{ "infinispan" : { "cache-container" : { "statistics" : "true", "jmx" : { "enabled" : "true", "domain" : "example.com", "mbean-server-lookup" : "com.example.MyMBeanServerLookup" } } } }
YAML
infinispan: cacheContainer: statistics: "true" jmx: enabled: "true" domain: "example.com" mbeanServerLookup: "com.example.MyMBeanServerLookup"