- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > 編程語(yǔ)言 >
- Spring Boot Admin的使用詳解(Actuator監控接口)
Spring Boot Admin 是一個(gè)管理和監控Spring Boot 應用程序的開(kāi)源軟件。每個(gè)應用都認為是一個(gè)客戶(hù)端,通過(guò)HTTP或者使用 Eureka注冊到admin server中進(jìn)行展示,Spring Boot Admin UI部分使用AngularJs將數據展示在前端。
Spring Boot Admin 是一個(gè)針對spring-boot的actuator接口進(jìn)行UI美化封裝的監控工具。他可以:在列表中瀏覽所有被監控spring-boot項目的基本信息,詳細的Health信息、內存信息、JVM信息、垃圾回收信息、各種配置信息(比如數據源、緩存列表和命中率)等,還可以直接修改logger的level。
服務(wù)端:是指Spring Boot Admin這個(gè)應用(通常就是指監控服務(wù)器),一個(gè)服務(wù)端可以監控多個(gè)客戶(hù)端。
客戶(hù)端是:被服務(wù)端監控的對象(通常就是指你的業(yè)務(wù)系統)。
本部分將為您展示SpringBoot ADMIN 的簡(jiǎn)單應用。
步驟一:搭建springboot maven項目
搭建一個(gè)基于SpringBoot的項目。注意您所使用的SpringBoot版本。
步驟二:配置pom.xml文件
<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> <version>2.3.1</version> </dependency>
步驟三:application.properties中配置端口號
此端口號指的是你所搭建的服務(wù)器所使用的的版本號,如果服務(wù)端和客戶(hù)端在同一臺機器上,注意端口號的設置,以防端口出現沖突的情況。
server.port=8099
步驟四:主啟動(dòng)類(lèi)上加注解@EnableAdminServer
@SpringBootApplication @EnableAdminServer public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
步驟五:?jiǎn)?dòng)項目
訪(fǎng)問(wèn):http://127.0.0.1:8099/applications。監控首頁(yè)顯示如下
步驟一:在客戶(hù)端項目(也就是需要監控的springboot項目)中添加jar包
加入Security安全框架的jar包,加入jar需注意版本的問(wèn)題。有些springboot版本,可能會(huì )自動(dòng)引入失>敗。如圖:
出現這種情況需指定security的版本號,找個(gè)適合你springboot版本的security。
具體如下:
<!--security--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> <version>2.4.1</version> </dependency>
引入 spring-boot-admin-starter-client
<!--admin server 監控--> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> <version>2.4.1</version> </dependency>
步驟二:在啟動(dòng)配置文件中配置如下 application.properties
#開(kāi)放端點(diǎn)用于SpringBoot Admin的監控 management.endpoints.web.exposure.include=* # 給client應用取個(gè)名字 spring.boot.admin.client.instance.name=zxfdemo #這里配置admin server 的地址 spring.boot.admin.client.url=http://localhost:8099 #這里配置admin client 的地址(客戶(hù)端應用程序) spring.boot.admin.client.instance.service-url=http://localhost:8080
步驟四:測試效果
SpringBoot Admin的管理后臺如果沒(méi)密碼就能訪(fǎng)問(wèn),那實(shí)在太不安全了,所以需要引入一個(gè)安全加固的jar包。spring-boot-starter-security
Spring Security是一個(gè)功能強大且高度可定制的身份驗證和訪(fǎng)問(wèn)控制框架。提供了完善的認證機制和方法級的授權功能。是一款非常優(yōu)秀的權限管理框架。它的核心是一組過(guò)濾器鏈,不同的功能經(jīng)由不同的過(guò)濾器。此處就是想通過(guò)一個(gè)小案例將Spring Security整合到SpringBoot中去。要實(shí)現的功能就是在認證服務(wù)器上登錄,然后獲取Token,再訪(fǎng)問(wèn)資源服務(wù)器中的資源。
服務(wù)端配置修改
1. 服務(wù)端添加Spring Security 相關(guān)依賴(lài)
添加Spring Security 相關(guān)依賴(lài)
<!-- security--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> <version>2.4.1</version> </dependency>
2. 服務(wù)端設置賬號密碼
spring.security.user.name=zxf spring.security.user.password=123456
3.添加一個(gè)Spring Security 配置類(lèi)
package com.example.springadmintest.config; import de.codecentric.boot.admin.server.config.AdminServerProperties; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.web.csrf.CookieCsrfTokenRepository; /** * 配置security驗證頁(yè)面指向SpringBootAdmin提供的UI界面 * * */ @Configuration public class SecuritySecureConfig extends WebSecurityConfigurerAdapter { private final String contextPath; public SecuritySecureConfig(AdminServerProperties adminServerProperties) { this.contextPath = adminServerProperties.getContextPath(); } @Override protected void configure(HttpSecurity http) throws Exception { // 跨域設置,SpringBootAdmin客戶(hù)端通過(guò)instances注冊,見(jiàn)InstancesController http.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()) .ignoringAntMatchers(contextPath + "/instances"); http.authorizeRequests().antMatchers(contextPath + "/assets/**").permitAll(); // 靜態(tài)資源 http.authorizeRequests().anyRequest().authenticated(); // 所有請求必須通過(guò)認證 // 整合spring-boot-admin-server-ui http.formLogin().loginPage("/login").permitAll(); http.logout().logoutUrl("/logout").logoutSuccessUrl("/login"); // 啟用basic認證,SpringBootAdmin客戶(hù)端使用的是basic認證 http.httpBasic(); } }
4.登錄頁(yè)面展示
再次訪(fǎng)問(wèn)http://localhost:8099/ ,發(fā)現需要登錄
客戶(hù)端配置
1.客戶(hù)端添加Spring Security 相關(guān)依賴(lài)
<!-- security--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> <version>2.4.1</version> </dependency>
2. 客戶(hù)端設置賬號密碼
# 配置 admin-client 地址 spring.boot.admin.client.instance.service-url=http://localhost:8080 #配置 admin-server地址 spring.boot.admin.client.url=http://localhost:8099 # 配置 admin-server的賬號 spring.boot.admin.client.username=zxf # 配置 admin-server的密碼 spring.boot.admin.client.password=123456 #配置 admin-server的密碼 spring.security.user.name=zxf #配置 admin-client的密碼 spring.security.user.password=123456 #若在核心配置文件中未添加 management.security.enabled=false 配置, # 將會(huì )導致用戶(hù)在訪(fǎng)問(wèn)部分監控地址時(shí)訪(fǎng)問(wèn)受限,報401未授權錯誤。 management.security.enabled=false #監控中心配置, 允許監控所有接口 management.endpoints.web.exposure.include=*
3. 客戶(hù)端添加Spring Security 配置類(lèi)
package com.cachedemo.controller; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @Configuration public class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests().anyRequest().permitAll() .and().csrf().disable(); } }
所有配置完成測試結果
到此這篇關(guān)于Spring Boot Admin的使用詳解(Actuator監控接口)的文章就介紹到這了,更多相關(guān)Spring Boot Admin的使用 內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站