前言
生產(chǎn)上對 Web 應(yīng)用 的監(jiān)控是十分必要的。
對于 Spring Boot 應(yīng)用來說我們可以通過一個輕量級的監(jiān)控工具 Spring Boot Admin (SBA) 來進(jìn)行監(jiān)控。
Spring Boot Admin 功能
- 顯示健康狀況,顯示應(yīng)用度量指標(biāo)詳情,例如
- JVM和內(nèi)存指標(biāo)
- micrometer度量
- 數(shù)據(jù)源指標(biāo)
- 緩存指標(biāo)
- 顯示構(gòu)建信息編號
- 關(guān)注并下載日志文件
- 下載
heapdump - 查看
jvm系統(tǒng)和環(huán)境屬性 - 查看 Spring Boot 配置屬性
- 支持 Spring Cloud 的環(huán)境端點和刷新端點 ``
- 支持 K8s 易用的日志級別管理
- 與
JMX-beans交互 - 查看線程轉(zhuǎn)儲
- 查看
http跟蹤 - 查看
auditevents - 查看
http-endpoints - 查看計劃任務(wù)
- 查看和刪除活動會話(使用 Spring Session )
- 查看
Flyway/Liquibase數(shù)據(jù)庫遷移 - 狀態(tài)變更通知(通過電子郵件,Slack,Hipchat等,支持釘釘)
- 狀態(tài)更改的事件日志(非持久化)
創(chuàng)建admin-server模塊
- 在pom.xml中添加相關(guān)依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
- 在application.yml中進(jìn)行配置:
spring:
application:
name: admin-server
server:
port: 9301
- 在啟動類上添加@EnableAdminServer來啟用admin-server功能:
@EnableAdminServer
@SpringBootApplication
public class AdminServerApplication {
public static void main(String[] args) {
SpringApplication.run(AdminServerApplication.class, args);
}
}
創(chuàng)建admin-client模塊
*在pom.xml中添加相關(guān)依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
- 在application.yml中進(jìn)行配置:
spring:
application:
name: admin-client
boot:
admin:
client:
url: http://localhost:9301 #配置admin-server地址
server:
port: 9305
management:
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: always
logging:
file: admin-client.log #添加開啟admin的日志監(jiān)控
- 啟動admin-server和admin-client服務(wù)。
監(jiān)控信息演示
-
訪問如下地址打開Spring Boot Admin的主頁:http://localhost:9301
image.png 點擊wallboard按鈕,選擇admin-client查看監(jiān)控信息;
-
監(jiān)控信息概覽;
image.png -
度量指標(biāo)信息,比如JVM、Tomcat及進(jìn)程信息;
image.png -
環(huán)境變量信息,比如系統(tǒng)屬性、系統(tǒng)環(huán)境變量以及應(yīng)用配置信息;
image.png -
查看所有創(chuàng)建的Bean信息;
image.png -
查看應(yīng)用中的所有配置信息;
image.png 查看日志信息,需要添加以下配置才能開啟;
logging:
file: admin-client.log #添加開啟admin的日志監(jiān)控

image.png
-
查看JVM信息;
image.png -
查看可以訪問的Web端點;
image.png -
查看HTTP跟蹤信息;
image.png
結(jié)合注冊中心使用
Spring Boot Admin結(jié)合Spring Cloud 注冊中心使用,只需將admin-server和注冊中心整合即可,admin-server 會自動從注冊中心獲取服務(wù)列表,然后挨個獲取監(jiān)控信息。








