3分鐘教你如何增加 SpringBoot Admin 來做監控

很多時候,你根本不會知道你服務在哪臺實體機上執行,也不知道現在用到哪一版

所以在微服務系統架構中...監控管理是非常重要的一環

其實在 SpringBoot中有內建 提供非常多的資訊跟一些簡單的服務管理功能

後來有一個團隊做了不錯看的 UI 出來, 就是 SpringBoot Admin 也跟 Spring Cloud 做了不錯的整合, 就算不用 SpringCloud 單獨使用也非常好用.

Server 端

首先我再建立個新專案叫 admin

專案的 build.gradle 如下

我們加上了 spring-boot-admin-server 這是監控端, spring-boot-admin-server-ui 就是 UI 啦

然後我們啟動程程序加上

加上了 EnableAdminServer 就可以了

啟動之後 打開

http://localhost:8080

然後當你用 Chrome 打開頁面的時候, 會跳出下面通知接收的詢問

這邊我們先按允許

Client 端

客戶端更簡單, 只需要引入 spring-boot-admin-starter-client 套件

application.yml 我們改一下 port 然後加上 client 的配置讓他知道 server 在哪

還有我們給應用程式一個名稱 bookservice 之後比較好辨識

接下來只要啟動程序就可以了, 你可以看到我們

畫面中我們的 bookservice 是啟動狀態, 同時狀態變動的時候 springboot admin 也會透過 chrome 的機制來通知我們

是不是感覺安心很多了呢? 至少不會發生服務掛掉一天一夜沒人發現這種鳥事。

Client 端 安全機制

但是 Client 端的 port 跟 api 是一樣的, 所以外面的人也可以透過這個 port 來監控你的應用

所以我們再做一點手腳來保護

簡單一點的呢....就直接加上

然後配置檔 application.yml 就改成 這樣

management.security.enabled 一定要開啟, 不開啟等於沒有生效

security 這邊就是 basicAuth

admin.client 這邊就是讓 server 端可以透過 basicAuth 正常存取 Client 的資訊