1. 程式人生 > 其它 >Spring Boot Admin,賊好使!

Spring Boot Admin,賊好使!

https://www.cnblogs.com/vipstone/p/15800488.html

Spring Boot Admin(SBA)是一個開源的社群專案,用於管理和監控 Spring Boot 應用程式。應用程式可以通過 http 的方式,或 Spring Cloud 服務發現機制註冊到 SBA 中,然後就可以實現對 Spring Boot 專案的視覺化管理和查看了。

Spring Boot Admin 可以監控 Spring Boot 單機或叢集專案,它提供詳細的健康 (Health)資訊、記憶體資訊、JVM 系統和環境屬性、垃圾回收資訊、日誌設定和檢視、定時任務檢視、Spring Boot 快取檢視和管理等功能。接下來我們一起來搭建和使用吧。

它最終的展示效果如下:

1.搭建SBA監控端

我們需要建立一個 Spring Boot Admin 專案,用來監控和管理我們的 Spring Boot 專案,搭建的方式和建立普通的 Spring Boot 專案類似,具體步驟如下。
使用 Idea 建立一個 Spring Boot 專案:


這裡需要注意,需要新增 Spring Boot Admin(Server)服務端框架的支援,如下圖所示:

也就是建立的 Spring Boot 專案需要新增以下兩個重要的框架支援:

<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>

1.1 開啟SBA服務

建立完專案之後,需要在啟動類上開啟 SBA 服務:

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@EnableAdminServer // 新增此行程式碼
@SpringBootApplication 
public class SbaserverApplication {
    public static void main(String[] args) {
        SpringApplication.run(SbaserverApplication.class, args);
    }
}

1.2 配置SBA埠號

在 application.properties 中配置一個專案的埠號就可以直接啟動了,我配置的埠號是 9001:

server.port=9001

PS:配置埠號的主要目的是為了不和其他 Spring Boot 專案衝突,如果 SBA 是單獨部署此步驟可以忽略。

啟動專案之後,就可以看到 SBA 的主頁了,如下圖所示:

此時 SBA 中還沒有新增任何需要監控的專案,接下來我們再建立一個 Spring Boot 專案,加入到 SBA 中來進行監控和管理吧。

2.建立一個普通SpringBoot專案

首先,我們需要建立一個普通的 Spring Boot 專案,具體的建立步驟這裡就不演示了。當建立好 Spring Boot 專案之後,需要在這個 Spring Boot 專案中需要新增 SBA 客戶端框架的支援,也就是在 pom.xml 中配置如下內容:

<dependency>
  <groupId>de.codecentric</groupId>
  <artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>

然後在 application.properties 檔案中配置 SBA 伺服器端地址,也就是咱們第一步建立 SBA 專案的地址,配置內容如下:

# 當前專案埠號
server.port=8080
# Spring Boot Admin 監控伺服器端地址
spring.boot.admin.client.url=http://localhost:9001

其中“spring.boot.admin.client.url”為 SBA 監控地址。

3.SpringBootAdmin監控總覽

配置完以上資訊之後,此時檢視 Spring Boot Admin 頁面中就有被監控的 Spring Boot 專案了,如下圖所示:

也可以點選“應用牆”檢視 Spring Boot Admin 中所有被監控的 Spring Boot 專案,如下圖所示:

點選應用進入詳情頁面,如下圖所示:


事件日誌中包含 Spring Boot 各種狀態的展示(UP 為正常、OFFLINE 為異常)和發生的時間,如下圖所示:

4.SpringBoot異常監控

當我們手動把被監控的 Spring Boot 專案停止之後,在 Spring Boot Admin 中就可以檢視到一個應用已經被停掉了,如下圖所示:

我們也可以通過事件日誌檢視 Spring Boot 宕機的具體時間,如下圖所示:

5.配置檢視更多監控項

通過上面的內容我們可以看出,監控的 Spring Boot 選項還是比較少的,怎麼才能檢視更多的監控項呢?
要解決這個問題,我們需要在被監控的 Spring Boot 專案中新增 spring-boot-starter-actuator 框架的支援,並開啟檢視所有監控項的配置才行,最終展示效果如下:

接下來我們來配置一下這些監控項。

5.1 新增actuator框架支援

在被監控的 Spring Boot 專案中新增 actuator 框架支援,也就是在 pom.xml 中新增以下配置:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

手動點選 Maven 匯入依賴包(如果開啟了自動匯入,此步驟可忽略)。

5.2 配置開放所有監控項

在被監控的 Spring Boot 專案中新增以下配置:

# 開啟監控所有項
management.endpoints.web.exposure.include=*

以上的配置是開放監控所有選項,配置完之後,重啟此 Spring Boot 專案,然後再重新整理 Spring Boot Admin 更多的監控項就展示出來了,如下圖所示:

5.3 監控專案預覽

將 Spring Boot 的所有監控項都開啟之後,通過 SBA 就可以檢視以下內容了:

  • 啟動時間、累計執行時間;
  • 程序和執行緒數量和佔用的 CPU 資源;
  • 垃圾回收詳情資訊,回收次數和花費時間;
  • JVM 執行緒轉儲、記憶體轉儲詳情和對應的檔案下載;
  • 可以檢視和配置 Spring Boot 專案中的日誌級別;
  • 檢視 Spring Boot 專案效能監控;
  • 檢視 Spring Boot 執行環境資訊;
  • 檢視 Spring Boot 所有類資訊;
  • 檢視 Spring Boot 中的定時任務;
  • 檢視和管理 Spring Boot 專案中的所有快取。

以下是幾個重要頁面的截圖,我們一起來看。

5.3.1 檢視執行環境


5.3.2 檢視定時任務

5.3.3 專案日誌級別配置


我們可以通過 Spring Boot Admin 來動態的配置專案中的日誌級別。

5.3.4 JVM執行緒和記憶體檢視

5.3.5 檢視SpringBoot所有快取


當然我們還可以對這些快取進行刪除操作。

6.檢視專案實時日誌

想要檢視監控專案中的日誌資訊,有一個前提條件,前提條件是你被監控的 Spring Boot 專案,必須配置了日誌的儲存路徑或者日誌儲存檔名,只有配置這兩項中的任意一項,你的 Spring Boot 專案才會將日誌儲存到磁碟上,這樣才能通過 SBA 檢視到,我配置的是日誌路徑,在 Spring Boot 的 application.properties 配置檔案中新增以下配置:

# 設定日誌儲存路徑
logging.file.path=C:\\work\\log

設定完成之後,重啟你的 Spring Boot 專案,然後重新整理 SBA 頁面,最終展示效果如下:

此時我們就可以檢視實時的日誌資訊了,當然你也可以隨時下載日誌,如果需要的話。

總結

Spring Boot Admin(SBA)是一個社群開源專案,用於管理和監視 Spring Boot 應用程式,它提供詳細的健康 (Health)資訊、記憶體資訊、JVM 系統和環境屬性、垃圾回收資訊、日誌設定和檢視、定時任務檢視、Spring Boot 快取檢視和管理等功能。

我們需要建立一個 SBA 伺服器端用來監控一個或多個 Spring Boot 專案,被監控的 Spring Boot 專案要新增 SBA Client 框架的支援,且新增 actuator 框架和相應的配置,就可以實現對 Spring Boot 專案的完美監控了。

是非審之於己,譭譽聽之於人,得失安之於數。

公眾號:Java面試真題解析

關注下面二維碼,訂閱更多精彩內容。
轉https://www.cnblogs.com/vipstone/p/15800488.html