前言
生產(chǎn)上對(duì) Web 應(yīng)用 的監(jiān)控是十分必要的。
對(duì)于 Spring Boot 應(yīng)用來(lái)說(shuō)我們可以通過(guò)一個(gè)輕量級(jí)的監(jiān)控工具 Spring Boot Admin (SBA) 來(lái)進(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)建信息編號(hào)
- 關(guān)注并下載日志文件
- 下載
heapdump - 查看
jvm系統(tǒng)和環(huán)境屬性 - 查看 Spring Boot 配置屬性
- 支持 Spring Cloud 的環(huán)境端點(diǎn)和刷新端點(diǎn) ``
- 支持 K8s 易用的日志級(jí)別管理
- 與
JMX-beans交互 - 查看線程轉(zhuǎn)儲(chǔ)
- 查看
http跟蹤 - 查看
auditevents - 查看
http-endpoints - 查看計(jì)劃任務(wù)
- 查看和刪除活動(dòng)會(huì)話(使用 Spring Session )
- 查看
Flyway/Liquibase數(shù)據(jù)庫(kù)遷移 - 狀態(tài)變更通知(通過(guò)電子郵件,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
- 在啟動(dòng)類上添加@EnableAdminServer來(lái)啟用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 #添加開(kāi)啟admin的日志監(jiān)控
- 啟動(dòng)admin-server和admin-client服務(wù)。
監(jiān)控信息演示
-
訪問(wèn)如下地址打開(kāi)Spring Boot Admin的主頁(yè):http://localhost:9301
image.png 點(diǎn)擊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 查看日志信息,需要添加以下配置才能開(kāi)啟;
logging:
file: admin-client.log #添加開(kāi)啟admin的日志監(jiān)控

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








