28.基于JMX的监控和管理

  • Java管理扩展(JMX)提供了一种标准的监控和管理应用的机制。默认情况下,Spring Boot在 org.springframework.boot 域下将管理端点暴露为JMX MBeans。

自定义MBean名称

  • MBean的名称通常产生于端点的id。例如,health端点被暴露为org.springframework.boot/Endpoint/HealthEndpoint 。

  • 如果你的应用包含多个Spring ApplicationContext,你会发现存在名称冲突。为了解决这个问题,你可以将 endpoints.jmx.uniqueNames 设置为true,这样MBean的名称总是唯一的。

  • 你也可以自定义JMX域,所有的端点都在该域下暴露。这里有个application.properties示例:

endpoints.jmx.domain=myapp 
endpoints.jmx.uniqueNames=true

禁用JMX端点

  • 如果不想通过JMX暴露端点,你可以将 spring.jmx.enabled 属性设置为false:

    spring.jmx.enabled=false
    

使用Jolokia通过HTTP实现JMX远程管理

  • Jolokia是一个JMX-HTTP桥,它提供了一种访问JMX beans的替代方法。想要使用Jolokia,只需添加 org.jolokia:jolokiacore的依赖。
    例如,使用Maven需要添加下面的配置:
    
        org.jolokia
        jolokia-core
    
  • 在你的管理HTTP服务器上可以通过 /jolokia 访问Jolokia。

自定义Jolokia

  • Jolokia有很多配置,传统上一般使用servlet参数进行设置。使用Spring Boot,你可以在application.properties中通过把参数加上 jolokia.config. 前缀来设置:

    jolokia.config.debug=true
    

禁用Jolokia

  • 如果你正在使用Jolokia,但不想让Spring Boot配置它,只需要简单的将 endpoints.jolokia.enabled 属性设置为false:

    endpoints.jolokia.enabled=false
    

你可能感兴趣的:(28.基于JMX的监控和管理)