52. 通过JMX监控和管理
Java管理扩展(JMX)提供了一种监视和管理应用程序的标准机制,默认情况下,Spring Boot将管理端点公开为org.springframework.boot
域中的JMX mbean。
52.1 自定义MBean的名字
MBean的名称通常是由端点的id
生成的,例如,health
端点公开为org.springframework.boot:type=Endpoint,name=Health
。
如果你的应用程序包含多个Spring ApplicationContext
,你可能会发现名称冲突,要解决这个问题,可以设置management.endpoints.jmx.unique-names
属性为true
,这样MBean名称总是唯一的。
你还可以自定义在其中暴露端点的JMX域,下面的设置显示了application.properties
中的一个示例:
management.endpoints.jmx.domain=com.example.myapp
management.endpoints.jmx.unique-names=true
52.2 禁用JMX端点
如果不希望在JMX上公开端点,您可以设置management.endpoints.jmx.exposure.exclude
属性为*
,如下例所示:
management.endpoints.jmx.exposure.exclude=*
52.3 使用Jolokia通过HTTP实现JMX
Jolokia是一个JMX-http桥梁,它提供了访问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端点,然后,你可以使用/actuator/jolokia
在你的管理HTTP服务器上访问它。
52.3.1 定制Jolokia
Jolokia有许多设置,你通常通过设置servlet参数来配置它们,使用Spring Boot,你可以使用你的application.properties
文件,为此,在参数前面加上management.endpoint.jolokia.config.
,如下例所示:
management.endpoint.jolokia.config.debug=true
52.3.2 禁用Jolokia
如果你使用Jolokia但不希望Spring Boot配置它,设置management.endpoint.jolokia.enabled
属性为false
,如下所示:
management.endpoint.jolokia.enabled=false