1. 引言
1.1 什么是 Spring Boot Actuator
Spring Boot Actuator 是 Spring Boot 提供的一組生產級功能模塊,用于幫助開發者對 Spring Boot 應用進行監控和管理。它提供了一系列 REST API 端點(Endpoints),可以獲取應用程序的運行狀態、健康檢查、度量指標等信息。
這些端點開箱即用,適用于本地開發、測試環境以及生產部署。
1.2 為什么需要應用實時監控
在微服務架構中,系統復雜度高、服務數量多且分布廣泛。為了快速定位問題、優化性能、保障系統穩定性,必須具備完善的監控能力。
Spring Boot Actuator 提供了以下關鍵優勢:
- 開箱即用的健康檢查
- 實時查看 JVM 和系統指標
- 快速排查配置和 Bean 注入問題
- 支持自定義監控邏輯和集成主流監控平臺
2. Spring Boot Actuator 簡介
2.1 Actuator 的核心功能概述
Actuator 提供的功能包括但不限于:
功能 | 描述 |
---|---|
健康檢查 | 檢查應用是否正常運行 |
指標收集 | 獲取 JVM、HTTP 請求次數、線程數等運行數據 |
配置查看 | 查看當前環境變量與配置屬性 |
請求映射 | 查看 URL 與 Controller 方法的映射關系 |
2.2 常用內置端點(Endpoints)介紹
端點名稱 | 描述 |
---|---|
/actuator/health | 查看應用健康狀態 |
/actuator/metrics | 獲取 JVM 和系統運行時指標 |
/actuator/info | 顯示自定義項目信息 |
/actuator/env | 查看當前環境變量和配置 |
/actuator/beans | 查看 Spring 容器中的 Bean 列表 |
/actuator/mappings | 查看請求路徑與控制器方法的映射關系 |
2.3 Actuator 在生產環境中的典型用途
- Kubernetes 或 Consul 中的服務健康檢查探針
- Prometheus + Grafana 的可視化監控接入
- 日志與報警系統的數據源
- 運維人員快速診斷問題的依據
3. 快速開始:集成 Spring Boot Actuator
3.1 創建一個基礎的 Spring Boot 應用
使用 Spring Initializr 創建一個 Spring Boot 項目,選擇以下依賴:
- Spring Web
- Spring Boot Actuator
下載并導入項目到 IDE 中。
3.2 引入 Actuator 依賴(Maven / Gradle)
Maven:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Gradle:
implementation 'org.springframework.boot:spring-boot-starter-actuator'
3.3 啟用所有端點并訪問健康狀態接口
默認情況下,并非所有端點都啟用。我們可以在 application.yml
中開啟所有端點:
management:endpoints:web:exposure:include: "*"
啟動應用后,訪問:
http://localhost:8080/actuator/health
響應示例:
{"status": "UP"
}
3.4 自定義管理端口與路徑配置
你可以在 application.yml
中修改 Actuator 的訪問端口和路徑:
server:port: 8081management:server:port: 8082endpoints:web:base-path: /manageexposure:include: "*"
現在可以通過:
http://localhost:8082/manage/health
訪問健康檢查接口。
4. 核心功能詳解
4.1 /actuator/health
:應用健康狀態監控
Actuator 默認提供了一個簡單的健康檢查接口。你可以通過添加數據庫依賴讓其自動檢測數據庫是否可用。
添加數據庫依賴(如 MySQL):
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId