55. 通过 JMX 进行监视和 Management

Java Management 扩展(JMX)提供了监视和 Management 应用程序的标准机制。默认情况下,Spring Boot 在org.springframework.boot域下将 Management 端点公开为 JMX MBean。

55.1 自定义 MBean 名称

MBean 的名称通常是从端点的id生成的。例如,health端点公开为org.springframework.boot:type=Endpoint,name=Health

如果您的应用程序包含多个 Spring ApplicationContext,则您可能会发现名称冲突。要解决此问题,可以将spring.jmx.unique-names属性设置为true,以便 MBean 名称始终是唯一的。

您还可以自定义暴露端点的 JMX 域。以下设置显示了在application.properties中执行此操作的示例:

spring.jmx.unique-names=true
management.endpoints.jmx.domain=com.example.myapp

55.2 禁用 JMX 端点

如果不想通过 JMX 公开终结点,可以将management.endpoints.jmx.exposure.exclude属性设置为*,如以下示例所示:

management.endpoints.jmx.exposure.exclude=*

55.3 通过 HTTP 将 Jolokia 用于 JMX

Jolokia 是一个 JMX-HTTP bridge,它提供了一种访问 JMX Bean 的替代方法。要使用 Jolokia,请包括对org.jolokia:jolokia-core的依赖。例如,使用 Maven,您将添加以下依赖项:

<dependency>
	<groupId>org.jolokia</groupId>
	<artifactId>jolokia-core</artifactId>
</dependency>

然后,可以通过向management.endpoints.web.exposure.include属性添加jolokia*来暴露 Jolokia 端点。然后,可以通过在 Management HTTP 服务器上使用/actuator/jolokia来访问它。

55.3.1 自定义 Jolokia

Jolokia 具有许多设置,这些设置通常是通过设置 servlet 参数进行配置的。通过 Spring Boot,您可以使用application.properties文件。为此,请在参数前面加上management.endpoint.jolokia.config.,如以下示例所示:

management.endpoint.jolokia.config.debug=true

55.3.2 禁用 Jolokia

如果您使用 Jolokia 但不希望 Spring Boot 对其进行配置,则将management.endpoint.jolokia.enabled属性设置为false,如下所示:

management.endpoint.jolokia.enabled=false