微服務架構下,龐大的系統拆分成多個獨立的系統,應用部署的的數量增加,維護的復雜性增加,為了高效的運維,需要一套自動化的監控運維機制,為了使運維系統獲取各微服務應用的相關指標,spring boot提供spring-boot-starter-actuator模塊,提供一系列監控的端點.
入門demo:
環境:springboot版本:2.1.3.RELEASE
在spring boot工程的基礎上添加依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
啟動訪問:http://localhost/actuator/health
spring-boot-starter-actuator提供多個默認端點,可以啟用或禁用每個端點。要遠程訪問端點,還必須通過JMX或HTTP公開端點。大多數應用程序選擇HTTP,其中端點的ID加上/actuator的前綴映射到URL,例如上面,顯示應用程序健康信息的URL./actuator/health.提供的端點有:
ID | Description | web默認是否開啟 |
auditevents | 為當前應用程序公開審計事件信息 | No |
beans | 顯示應用程序中所有Spring bean的完整列表 | No |
caches | 公開可用的緩存 | No |
conditions | 顯示在配置和自動配置類上評估的條件,以及它們匹配或不匹配的原因 | No |
configprops | 顯示所有已整理的@ConfigurationProperties修飾的列表 | No |
env | Spring的ConfigurableEnvironment公開屬性 | No |
health | 顯示應用程序健康信息 | Yes |
heapdump | 生成堆信息文件 | No |
httptrace | 顯示HTTP跟蹤信息(默認情況下,最后100個HTTP請求-響應交換) | No |
info | :顯示應用程序信息 | Yes |
metrics | 顯示當前應用程序的“度量”信息 | No |
mappings | 顯示所有@RequestMapping路徑的列表 | No |
scheduledtasks | 顯示應用程序中的計划任務 | No |
threaddump | 執行線程轉儲 | No |
由於端點可能包含敏感信息,因此應該仔細考慮何時公開它們,默認情況下web下只公開info, health兩個端點,可以通過application.properties配置控制
management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=env,beans
如上:management.endpoints.web.exposure.include=* 代表公開使用端點
management.endpoints.web.exposure.exclude=env,beans 標示排除env,beans倆端點
當兩個配置出現沖突時,management.endpoints.web.exposure.exclude的優先級更高,即spring boot會公開除了env,beans的所有端點