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