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