通过 JMX 进行监控和管理
Java 管理扩展 (JMX) 提供了一种标准机制来监控和管理应用程序。默认情况下,此功能未启用。可以通过将spring.jmx.enabled
配置属性设置为true
来启用它。Spring Boot 将最合适的MBeanServer
作为具有 ID 为mbeanServer
的 bean 公开。任何使用 Spring JMX 注释(@ManagedResource
、@ManagedAttribute
或 @ManagedOperation
)注释的 bean 都将公开给它。
如果您的平台提供标准的MBeanServer
,Spring Boot 将使用它,并在必要时默认使用 VM MBeanServer
。如果所有这些都失败,则会创建一个新的MBeanServer
。
有关更多详细信息,请参阅JmxAutoConfiguration
类。
默认情况下,Spring Boot 还将管理端点作为 JMX MBean 公开到org.springframework.boot
域。要完全控制 JMX 域中的端点注册,请考虑注册您自己的EndpointObjectNameFactory
实现。
自定义 MBean 名称
MBean 的名称通常由端点的id
生成。例如,health
端点公开为org.springframework.boot:type=Endpoint,name=Health
。
如果您的应用程序包含多个 Spring ApplicationContext
,您可能会发现名称冲突。要解决此问题,可以将spring.jmx.unique-names
属性设置为true
,以便 MBean 名称始终是唯一的。
您还可以自定义公开端点的 JMX 域。以下设置显示了在application.properties
中执行此操作的示例
-
属性
-
YAML
spring.jmx.unique-names=true
management.endpoints.jmx.domain=com.example.myapp
spring:
jmx:
unique-names: true
management:
endpoints:
jmx:
domain: "com.example.myapp"