9.4. 注册 JMX MBeans
数据网格可以注册 JMX MBeans,用于收集统计信息和执行管理操作。您还必须为 JMX MBeans 中的所有统计属性提供 0
值。
流程
- 打开 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"
9.4.1. 启用 JMX 远程端口
提供唯一的远程 JMX 端口,以通过 JMXServiceURL 格式的连接公开数据网格 MBeans。
数据网格服务器不使用单一端口端点远程公开 JMX。如果要通过 JMX 远程访问数据网格服务器,您必须启用远程端口。
您可以使用以下方法之一启用远程 JMX 端口:
- 启用需要身份验证到其中一个数据网格服务器安全域的远程 JMX 端口。
- 使用标准的 Java 管理配置选项手动启用远程 JMX 端口。
先决条件
-
对于具有身份验证的远程 JMX,请使用默认安全域定义用户角色。用户必须具有读写访问权限的
controlRole
或具有只读访问权限的monitorRole
才能访问任何 JMX 资源。
流程
通过以下方法之一启用远程 JMX 端口启动 Data Grid Server:
通过端口
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 可让未授权用户连接到您的服务器并访问其中托管的数据。
其他资源
9.4.2. Data Grid MBeans
数据网格公开了代表可管理资源的 JMX MBeans。
org.infinispan:type=Cache
- 用于缓存实例的属性和操作。
org.infinispan:type=CacheManager
- 用于缓存管理器的属性和操作,包括数据网格缓存和集群健康统计。
有关可用 JMX MBeans 以及描述以及可用操作和属性的完整列表,请参阅 数据网格 JMX 组件 文档。
其他资源
9.4.3. 在自定义 MBean 服务器中注册 MBeans
数据网格包含一个 MBeanServerLookup
接口,可用于在自定义 MBeanServer 实例中注册 MBeans。
先决条件
-
创建
MBeanServerLookup
的实施,使getMBeanServer ()
方法返回自定义 MBeanServer 实例。 - 配置数据网格以注册 JMX MBeans.
流程
- 打开 Data Grid 配置进行编辑。
-
将
mbean-server-lookup
属性或字段添加到缓存管理器的 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"