49. 通过 JMX 进行监视和 Management
JavaManagement 扩展(JMX)提供了监视和 Management 应用程序的标准机制。默认情况下,Spring Boot 会将 Management 端点公开为org.springframework.boot
域下的 JMX MBean。
49.1 自定义 MBean 名称
MBean 的名称通常是从端点的id
生成的。例如,health
端点公开为org.springframework.boot/Endpoint/healthEndpoint
。
如果您的应用程序包含多个 Spring ApplicationContext
,则您可能会发现名称冲突。要解决此问题,可以将endpoints.jmx.unique-names
属性设置为true
,以便 MBean 名称始终是唯一的。
您还可以自定义暴露端点的 JMX 域。这是application.properties
的示例:
endpoints.jmx.domain=myapp
endpoints.jmx.unique-names=true
49.2 禁用 JMX 端点
如果您不想通过 JMX 公开端点,则可以将endpoints.jmx.enabled
属性设置为false
:
endpoints.jmx.enabled=false
49.3 通过 HTTP 将 Jolokia 用于 JMX
Jolokia 是一个 JMX-HTTPbridge,它提供了一种访问 JMX Bean 的替代方法。要使用 Jolokia,只需添加对org.jolokia:jolokia-core
的依赖项。例如,使用 Maven 您将添加以下内容:
<dependency>
<groupId>org.jolokia</groupId>
<artifactId>jolokia-core</artifactId>
</dependency>
然后可以使用 ManagementHTTP 服务器上的/jolokia
访问 Jolokia。
49.3.1 自定义 Jolokia
Jolokia 具有许多您通常使用 servlet 参数进行配置的设置。使用 Spring Boot,您可以使用application.properties
,只需在参数前面加上jolokia.config.
即可:
jolokia.config.debug=true
49.3.2 禁用 Jolokia
如果您使用的是 Jolokia,但您不希望 Spring Boot 对其进行配置,则只需将endpoints.jolokia.enabled
属性设置为false
:
endpoints.jolokia.enabled=false