天天看點

飛5的Spring Boot2(45)- 基于JMX的監控和管理

飛5的Spring Boot2(45)- 基于JMX的監控和管理

基于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示例: ```properties endpoints.jmx.domain=myapp endpoints.jmx.uniqueNames=true

禁用JMX端點

如果不想通過JMX暴露端點,你可以将endpoints.jmx.enabled屬性設定為false:

1endpoints.jmx.enabled=false      

使用Jolokia通過HTTP實作JMX遠端管理

Jolokia是一個JMX-HTTP橋,它提供了一種通路JMX beans的替代方法。想要使用Jolokia,隻需添加org.jolokia:jolokia-core的依賴。例如,使用Maven需要添加以下配置:

1<dependency>
2    <groupId>org.jolokia</groupId>
3    <artifactId>jolokia-core</artifactId>
4 </dependency>      

然後在你的管理HTTP伺服器上可以通過/jolokia通路Jolokia。

自定義Jolokia

Jolokia有很多配置,通常使用servlet參數進行設定,跟Spring Boot一塊使用時可以在application.properties中添加jolokia.config.字首的屬性進行配置:

1jolokia.config.debug=true      

禁用Jolokia

如果正在使用Jolokia,又不想讓Spring Boot配置它,你隻需要簡單的将endpoints.jolokia.enabled屬性設定為false:

1endpoints.jolokia.enabled=false