spring-boot-admin對spring-boot專案進行監控
今天需要使用spring-boot-admin
對spring-boot專案
進行監控的功能,之前網上的版本都太老舊了,已經不適合現在總結一下。目前版本spring-boot-admin
版本是2.1.4
,spring-boot專案
版本是2.1.4.RELEASE
。
建立Server專案
1、新建專案為boot-admin-server,並引入Jar包
<properties> <java.version>1.8</java.version> <spring-boot-admin.version>2.1.4</spring-boot-admin.version> </properties> <dependencies> <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> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-dependencies</artifactId> <version>${spring-boot-admin.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 複製程式碼
2、配置Spring-Security
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.authentication.SavedRequestAwareAuthenticationSuccessHandler; import org.springframework.security.web.csrf.CookieCsrfTokenRepository; import de.codecentric.boot.admin.server.config.AdminServerProperties; @Configuration public class SecuritySecureConfig extends WebSecurityConfigurerAdapter { private final String adminContextPath; public SecuritySecureConfig(AdminServerProperties adminServerProperties) { this.adminContextPath = adminServerProperties.getContextPath(); } @Override protected void configure(HttpSecurity http) throws Exception { SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler(); successHandler.setTargetUrlParameter("redirectTo"); successHandler.setDefaultTargetUrl(adminContextPath + "/"); http.authorizeRequests().antMatchers(adminContextPath + "/assets/**").permitAll() .antMatchers(adminContextPath + "/login").permitAll().anyRequest().authenticated().and().formLogin() .loginPage(adminContextPath + "/login").successHandler(successHandler).and().logout() .logoutUrl(adminContextPath + "/logout").and().httpBasic().and().csrf() .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()) .ignoringAntMatchers(adminContextPath + "/instances", adminContextPath + "/actuator/**"); } } 複製程式碼
配置之後,訪問需要使用者名稱和密碼
3、配置檔案
server.port=8070 spring.security.user.name=admin spring.security.user.password=123456 複製程式碼
修改埠,防止端口占用,同時指定使用者名稱和密碼
4、啟動程式配置
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import de.codecentric.boot.admin.server.config.EnableAdminServer; @SpringBootApplication @EnableAdminServer public class BootAdminServerApplication { public static void main(String[] args) { SpringApplication.run(BootAdminServerApplication.class, args); } } 複製程式碼
上述程式啟動即可
配置Client專案
1、正常是自己的專案,這裡為一個案例專案boot-admin-client,新增Jar包
<properties> <java.version>1.8</java.version> <spring-boot-admin.version>2.1.4</spring-boot-admin.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-dependencies</artifactId> <version>${spring-boot-admin.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 複製程式碼
2、配置檔案
# 開放所有頁面節點預設只開啟了health、info兩個節點 management.endpoints.web.exposure.include=* # 去除配置檔案資訊 #management.endpoints.web.exposure.exclude=configprops # 顯示健康具體資訊預設不會顯示詳細資訊 management.endpoint.health.show-details=always # server端地址 spring.boot.admin.client.url=http://127.0.0.1:8070 # 本client地址 spring.boot.admin.client.instance.service-url=http://127.0.0.1:8080 # 驗證Admin使用者名稱及密碼 spring.boot.admin.client.username=admin spring.boot.admin.client.password=123456 spring.security.user.name=client spring.security.user.password=123456 複製程式碼