Spring Boot提供了良好的服務監控模組,只需要通過簡單的配置便可以完成服務監控和管理。但是服務監控這塊內容往往是最容易被忽略的一塊內容,今天我們一起來學習一下使用spring-boot-actuator
進行服務監控。spring-boot-actuator
提供了監控端點,這些端點直接返回JSON字串
,通過這些端點可以查詢服務執行狀況,為了防止端點直接暴露,一般情況下會使用安全框架,如Spring Security來管理這些端點的安全性。
一 常用的端點
端點地址 | 描述 | 預設啟用 |
---|---|---|
auditevents | 獲取當前應用暴露的審計事件資訊 | 是 |
beans | 獲取應用中所有的bean的完整關係列表 | 是 |
caches | 獲取公開可以用的快取 | 是 |
conditions | 獲取自動配置條件資訊,記錄哪些自動配置條件通過和沒通過的原因 | 是 |
configprops | 獲取所有配置屬性,包括預設配置,顯示一個所有 @ConfigurationProperties 的整理列版本 | 是 |
env | 獲取所有環境變數 | 是 |
flyway | 獲取已應用的所有Flyway資料庫遷移資訊,需要一個或多個 Flyway Bean | 是 |
health | 獲取應用程式健康指標(執行狀況資訊) | 是 |
httptrace | 獲取HTTP跟蹤資訊(預設情況下,最近100個HTTP請求-響應交換)。需要 HttpTraceRepository Bean | 是 |
info | 獲取應用程式資訊 | 是 |
integrationgraph | 顯示 Spring Integration 圖。需要依賴 spring-integration-core | 是 |
loggers | 顯示和修改應用程式中日誌的配置 | 是 |
liquibase | 獲取應用的所有Liquibase資料庫遷移。需要一個或多個 Liquibase Bean | 是 |
metrics | 獲取系統度量指標資訊 | 是 |
mappings | 顯示所有@RequestMapping路徑的整理列表 | 是 |
scheduledtasks | 顯示應用程式中的計劃任務 | 是 |
sessions | 允許從Spring Session支援的會話儲存中檢索和刪除使用者會話。需要使用Spring Session的基於Servlet的Web應用程式 | 是 |
shutdown | 關閉應用 | 否 |
threaddump | 獲取系統執行緒轉儲資訊 | 是 |
預設情況下,除了shutdown
,其他端點都是啟動狀態。
1.1 如何使用
在專案中引入spring-boot-actuator
的依賴,就可以正常使用了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
1.2 如何訪問
/actuator+端點地址
例如想要訪問health端點,則訪問http://ip:port/actuator/health;
1.3 端點開啟/關閉
management:
endpoint:
# 開啟shutdown端點
shutdown:
enabled: true
啟用/禁用所有端點
management:
endpoints:
enabled-by-default: true
1.4 端點暴露
預設情況下,只有health
和info
暴露了http埠,這些端點支援通過http
和JMX
訪問,如果需要訪問具體的端點則需要配置暴露。
暴露http
端點
management:
endpoints:
web:
exposure:
include: health,info
暴露JMX
端點
management:
endpoints:
jmx:
exposure:
include: health,info
二 常用端點解析
2.1 health
health
包含的健康檢查項有DataSourceHealthIndicator
,DiskSpaceHealthIndicator
,MongoHealthIndicator
,ReidsHealthIndicator
,CassandraHealthIndicator
。
關閉特定的檢查項配置如下,關閉redis檢查項:
management:
health:
redis:
enabled: false
預設情況下health只是簡單的展示了UP
和DOWN
兩種狀態,如果想要看詳細資訊,則需要配置
management:
endpoint:
health:
show-details: always
2.2 metrics
metrics
可以使用帶PathVariable引數,引數為具體的度量值,如檢視cpu大小,http://localhost:8080/actuator/metrics/system.cpu.count;
2.3 info
info
使用的時候需要在配置檔案中自定義資訊,自定義資訊以info
開頭。
例如在配置檔案中增加如下內容:
info:
person:
name: Java旅途
age: 18
訪問info
端點顯示的是去掉info的一個JSON串:
person:
name: Java旅途
age: 18
Spring-Boot-acturator
使用起來很方便,但是缺點也很明顯,就是沒有圖形化介面。使用起來也不是很友好,下一章中,我們將使用有圖形化的Spring-Boot-Admin
來進行服務監控。
此是spring-boot-route系列的第十八篇文章,這個系列的文章都比較簡單,主要目的就是為了幫助初次接觸Spring Boot 的同學有一個系統的認識。本文已收錄至我的github,歡迎各位小夥伴star
!
github:https://github.com/binzh303/spring-boot-route
點關注、不迷路
如果覺得文章不錯,歡迎關注、點贊、收藏,你們的支援是我創作的動力,感謝大家。
如果文章寫的有問題,請不要吝嗇,歡迎留言指出,我會及時核查修改。
如果你還想更加深入的瞭解我,可以微信搜尋「Java旅途」進行關注。回覆「1024」即可獲得學習視訊及精美電子書。每天7:30準時推送技術文章,讓你的上班路不在孤獨,而且每月還有送書活動,助你提升硬實力!