SpringBoot可視化監控
可以直接利用 Spring Boot Admin 實現可視化監控,此時至少需要兩個項目實例,一個是監控的管理端,一個是被監控的客戶端。
1 構建監控管理端項目
2 引入管理端項目依賴
監控管理端需要使用網頁展示監控信息,所以引入 Web 依賴,另外添加 Spring Boot Admin 管理端依賴項。
實例:
<!-- Web 依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Boot Admin 管理端依賴項 -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.2.3</version>
</dependency>
3 開啟監控管理端
在啟動類上添加 @EnableAdminServer 注解開啟 Spring Boot Admin 監控管理功能,代碼如下:
實例:
@SpringBootApplication
@EnableAdminServer // 開啟監控管理
public class SpringBootMonitorManagerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootMonitorManagerApplication.class, args);
}
}
然后運行啟動類,訪問 http://127.0.0.1:8080
會發現界面上已經顯示監控信息了。
4 構建監控客戶端項目
5 引入客戶端項目依賴
直接引入 Web 依賴和監控客戶端依賴。
實例:
<!-- Web 依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Boot Admin監控客戶端依賴 -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.2.3</version>
</dependency>
6修改客戶端配置
修改客戶端的配置文件 application.properties ,以便指定客戶端指向的服務端的地址。由於剛剛服務端已經占用了 8080 端口,所以將客戶端的端口設置為 8091 。
還有一個必要設置是客戶端的名稱,當我們監控的項目實例比較多時,需要通過客戶端名稱來區分。
實例:
# 配置端口
server.port=8091
# 配置監控管理端地址
spring.boot.admin.client.url=http://127.0.0.1:8080
# 客戶端的名稱,用於區分不同的客戶端
spring.boot.admin.client.instance.name=CLIENT1
7 測試監控效果
啟動客戶端程序,然后刷新服務端網頁,會發現監控管理頁面已經顯示了客戶端信息。
此時我們關閉客戶端程序,然后稍等一會刷新下監控管理頁面(注意服務端發現客戶端離線是需要一定時間的),會發現監控管理頁已經顯示了離線項目實例信息。
8 監控實例運行參數
使用 Spring Boot Admin 后,默認顯示的項目實例信息比較少。
默認設置主要是為了保證項目實例的安全性,只展示了非常少的信息,我們可以通過配置文件指定展示哪些信息,如下。
實例:
# 配置客戶端展示哪些信息,*表示展示全部信息
management.endpoints.web.exposure.include=*
此時刷新監控管理頁,會發現已經展示各類運行參數信息。
同時Spring Boot Admin 提供了自動報警的功能
引入依賴項
為監控服務端項目引入郵件依賴。
實例:
<!-- 郵件依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
配置郵件發送所需信息
只需要配置常規的郵件收發信息即可。
實例:
# 網易郵箱發件服務器
spring.mail.host=smtp.163.com
# 網易郵箱發件端口
spring.mail.prot=25
# 發件人賬號
spring.mail.username=.......@163.com
# 發件授權密碼,注意授權碼是用於登錄第三方郵件客戶端的專用密碼
spring.mail.password=123456
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
# Spring Boot Admin 發件收件信息
spring.boot.admin.notify.mail.from=.......@163.com
spring.boot.admin.notify.mail.to=......@163.com
spring.boot.admin.notify.mail.cc=......@163.com
啟動監控服務端和客戶端,然后關閉客戶端,稍等一會檢查指定的報警接收郵箱,就會發現已收到報警郵件了。