通过JMX进行监控与管理
Java 管理扩展(JMX)提供了一种标准机制来监控和管理应用程序。
默认情况下,此功能未被启用。
你可以通过设置spring.jmx.enabled配置性质为true.
Spring靴展现了最合适的MBeanServer作为一个具有 ID 的豆子mbeanServer.
你任何带有Spring JMX注释的豆子(@org.springframework.jmx.export.annotation.ManagedResource,@ManagedAttribute或@ManagedOperation)暴露于其中。
如果你的平台提供标准MBeanServerSpring Boot 使用该系统并默认使用 VMMBeanServer,必要时。
如果这些都失败了,那就换一个新的MBeanServer被创造出来。
参见JmxAutoConfiguration更多详情请见班级。
默认情况下,Spring Boot 还将管理端点作为 JMX MBean 暴露于org.springframework.boot域。
要完全控制JMX域中的端点注册,建议自行注册EndpointObjectNameFactory实现。
定制MBean名称
MBean的名称通常由身份证终点。
例如,健康端点被暴露为org.springframework.boot:type=Endpoint,name=Health.
如果你的申请包含多个春季应用上下文你可能会发现名字有冲突。
为了解决这个问题,你可以设置spring.jmx.unique-names属性到true因此MBean的名称始终是唯一的。
你还可以自定义端点暴露在该下的 JMX 域。
以下设置展示了在application.properties:
-
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"
禁用JMX端点
如果你不想在 JMX 上暴露端点,可以设置Management.endpoints.jmx.exposure.exclude与 的性质如下例所示:*
-
Properties
-
YAML
management.endpoints.jmx.exposure.exclude=*
management:
endpoints:
jmx:
exposure:
exclude: "*"