SpringBoot整合視覺化監控工具——SpringBoot Admin

在說軟體監控之前,我們先來了解一下軟體的發展史,起初的軟體多為單體專案,程式碼量少功能也比較簡單,所以如果軟體出了問題維護人員是很好定位解決的,但是隨著業務量的激增,軟體體量也變得很大,尤其是分散式結構的出現使得維護難度變得更大。所以監控軟體變得必不可少,監控軟體一般作為一個獨立的模組被開發出來,監控著各個模組的執行情況,例如CPU、記憶體、網路IO等情況。早期的監控軟體需要我們公司自己來開發,但是開發難度不是每個公司都能hold住的,後來有開發人員將自己寫的監控軟體開源了出來,這才使得監控變得容易。

現在我們可以使用SpringBoot整合一款GitHub上開源的監控軟體SpringBoot Admin來達到這個目的。

好了,說了這麼多,到底SpringBoot怎麼整合SpringBoot Admin呢,下面給大家介紹。

本次用的開發工具是IDEA2022,SpringBoot版本是2。7。1,專案結構是分散式結構,分別由父專案admin、子模組server、子模組client三個部分組成。

父專案

首先我們新建一個maven工程作為父專案,主要的作用是聚合子模組方便打包、版本管理。我們點選新建專案,找到第一個

New Project

,為專案起名為admin,點選建立,完成。

SpringBoot整合視覺化監控工具——SpringBoot Admin

子模組——server

這裡子模組server的作用是一個監控的專案,它的本質是一個web工程,同樣我們點選新建專案,選擇SpringBoot專案,起名為server,點選下一步。

SpringBoot整合視覺化監控工具——SpringBoot Admin

勾選上web模組和ops下的

server

部分,如下圖,最後點選建立,完成。

SpringBoot整合視覺化監控工具——SpringBoot Admin

SpringBoot整合視覺化監控工具——SpringBoot Admin

我這裡推薦勾選選擇,如果你的專案已經建立好了,也可以透過引入依賴的方式來整合,依賴如下,

de。codecentric

spring-boot-admin-starter-server

2。7。1

到此為止我們的監控專案就建好了,接下來需要註解開啟監控,在server的啟動類上加上@EnableAdminServer註解,這樣就大功告成了!

SpringBoot整合視覺化監控工具——SpringBoot Admin

最後啟動spring專案在瀏覽器輸入

http://localhost:8080/applications

就進入監控頁面了!

此時我們可以看到被監控的應用數為0,這是因為我們還沒有新建被監控的子模組,接下來我們新建一個子模組。

SpringBoot整合視覺化監控工具——SpringBoot Admin

子模組——client

上述步驟完成之後我們需要建立一個子模組被監控,本質也是一個web專案。同server一樣我們新建一個SpringBoot專案,點選下一步。

SpringBoot整合視覺化監控工具——SpringBoot Admin

這裡需要勾選的也是web模組,不同的是這次ops變成了

client

,如下圖,點選建立,完成。

SpringBoot整合視覺化監控工具——SpringBoot Admin

SpringBoot整合視覺化監控工具——SpringBoot Admin

這裡我同樣推薦勾選方式,如果你的專案已經建立,則可以引入依賴,依賴如下

de。codecentric

spring-boot-admin-starter-client

2。7。1

這樣我們就建好了一個被監控的web專案,因為它是一個web專案,所以我們需要先將它的埠改成與

server

不同的以免衝突,這裡我改成了8081,配置檔案中還需要加上一個配置spring。boot。admin。client。url,這個配置的意思是被監控的資訊要發到哪個伺服器,所以這裡我們寫上server的url如下圖。

SpringBoot整合視覺化監控工具——SpringBoot Admin

這些完成之後我們就可以啟動client了,點選啟動按鈕,等待幾秒鐘,我們重新整理剛才開啟的頁面,可以發現被監控的例項數變成了1,這樣就被監控了!

SpringBoot整合視覺化監控工具——SpringBoot Admin

點選這個例項,我們跳到詳情頁,可以看到它是處於啟動狀態。

SpringBoot整合視覺化監控工具——SpringBoot Admin

如果你看到這裡可能會有疑問,為什麼就這一個指標?這是預設的指標,我們需要配置來開放更多的指標出來。

開放監控指標

我們開啟client的配置檔案,在其中加上下面兩個配置,如圖所示。然後重啟專案。

#開放指定資訊給伺服器看management。endpoint。health。show-details=alwaysmanagement。endpoints。web。exposure。include= *

SpringBoot整合視覺化監控工具——SpringBoot Admin

重新整理頁面,你會發現新增了很多新指標!

SpringBoot整合視覺化監控工具——SpringBoot Admin

SpringBoot整合視覺化監控工具——SpringBoot Admin

那麼接下來我介紹一下這兩個配置的作用,

第一個配置 management.endpoint.health.show-details=always

對應右側的健康明細,包括磁碟使用情況,執行緒程序情況。

SpringBoot整合視覺化監控工具——SpringBoot Admin

第二個配置 management.endpoints.web.exposure.include= *

指的是左側除了健康狀況以外的其他監控項,例如日誌配置、快取、類等。這裡的“*”號代表開放所有。

SpringBoot整合視覺化監控工具——SpringBoot Admin

效能

效能可以看出各個模組啟動的時間,也可以新增別的指標。

SpringBoot整合視覺化監控工具——SpringBoot Admin

環境

這裡的環境包括執行環境,jre版本等資訊。

SpringBoot整合視覺化監控工具——SpringBoot Admin

日誌配置

日誌配置可以更改對應的例項中的日誌級別。

SpringBoot整合視覺化監控工具——SpringBoot Admin

對映

對映可以看到專案中所有的介面資訊。

SpringBoot整合視覺化監控工具——SpringBoot Admin

這就是一些常用的指標,其中還有幾個沒有介紹到的,大家可以根據自己專案的使用情況去新增。

好了,SpringBoot Admin這款監控軟體就介紹到這裡,如果你專案中的子模組特別多的話也可以多新增幾個client,我這裡只用了一個client舉例,最後希望我的分享能幫助到你。