您好,登錄后才能下訂單哦!
這篇文章主要介紹“Spring Cloud整合Spring Boot Admin方法是什么”,在日常操作中,相信很多人在Spring Cloud整合Spring Boot Admin方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Spring Cloud整合Spring Boot Admin方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Spring Boot Admin 是由 codecentric 組織開發的開源項目,使用 Spring Boot Admin 可以管理和監控你的 Spring Boot 項目。
它分為客戶端和服務端兩部分,客戶端添加到你的 Spring Boot 應用增加暴漏相關信息的 HTTP 接口,然后注冊到 Spring Boot Admin 服務端,這一步驟可以直接向服務端注冊,也可以通過 Eureka 或者 Consul 進行注冊。
而 Spring Boot Admin Server 通過 Vue.js 程序監控信息進行可視化呈現。并且支持多種事件通知操作。
Spring Boot Admin 服務端是基于 Spring Boot 項目的,如何創建一個 Spring Boot 項目這里不提,你可以參考之前文章或者從 https://start.spring.io/ 直接獲得一個 Spring Boot 項目。
只需要添加 web 依賴和 Spring-boot-admin-starter-server 依賴。
<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!--安全認證框架--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
server: port: 8000 ####服務監控server端 spring: application: name: wireless-admin-server cloud: nacos: discovery: server-addr: localhost:8848 security: user: name: admin password: admin
package com.gpdi.wireless; import de.codecentric.boot.admin.server.config.EnableAdminServer; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; /** * @Author Lxq * @Date 2020/5/7 17:45 * @Version 1.0 */ @EnableAdminServer @SpringBootApplication @EnableDiscoveryClient public class AdminServerMain { public static void main(String[] args) { SpringApplication.run(AdminServerMain.class, args); } }
package com.gpdi.wireless.config; import de.codecentric.boot.admin.server.config.AdminServerProperties; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; 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; /** * @Author Lxq * @Date 2020/5/7 22:15 * @Version 1.0 * */ @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 { // @formatter:off 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() //啟用HTTP-Basic支持。這是Spring Boot Admin Client注冊所必需的 .httpBasic().and() .csrf() .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()) .ignoringAntMatchers( // 禁用CRSF保護Spring引導管理客戶端用來注冊的端點。 adminContextPath + "/instances", // 禁用執行器端點的CRSF保護 adminContextPath + "/actuator/**" ); } }
創建 Spring Boot 項目依舊不提,這里只需要添加 Spring Boot Admin 客戶端需要的依賴,在項目啟動時就會增加相關的獲取信息的 API 接口。然后在 Spring Boot 配置文件中配置 Spring Boot Admin 服務端,就可以進行監控了。
< !--服務監控客戶端--> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> <version>2.2.2</version> </dependency> <!--alibaba-nacos-discovery 注冊中心--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
客戶端配置主要為了讓客戶端可以成功向服務端注冊,所以需要配置客戶端所在應用相關信息以及 Spring Boot Admin Server 服務端的 url。
server: port: 8761 spring: application: name: wireless-code-generatr cloud: nacos: discovery: server-addr: localhost:8848 #### 暴露端點 management: endpoints: web: exposure: include: '*' endpoint: health: show-details: always logging: file: name: boot.log pattern: ####日志高亮 file: '%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx'
配置中的 include: "*" 公開了所有的端口,對于生產環境,應該自信的選擇要公開的接口。
啟動客戶端會暴漏相關的運行狀態接口,并且自動向配置的服務端發送注冊信息。
點擊監控頁面上的在線的應用實例,可以跳轉到應用實例詳細的監控管理頁面,也就是 Vue.js 實現的 web 展示。
Spring Boot Admin Server 可以監控的功能很多,使用起來沒有難度,
下面描述下可以監測的部分內容:
應用運行狀態,如時間、垃圾回收次數,線程數量,內存使用走勢。
應用性能監測,通過選擇 JVM 或者 Tomcat 參數,查看當前數值。
應用環境監測,查看系統環境變量,應用配置參數,自動配置參數。
應用 bean 管理,查看 Spring Bean ,并且可以查看是否單例。
應用計劃任務,查看應用的計劃任務列表。
應用日志管理,動態更改日志級別,查看日志。
應用 JVM 管理,查看當前線程運行情況,dump 內存堆棧信息。
應用映射管理,查看應用接口調用方法、返回類型、處理類等信息。
上面提到的日志管理,可以動態的更改日志級別,以及查看日志。默認配置下是只可以動態更改日志級別的,如果要在線查看日志,就需要手動配置日志路徑了。
客戶端上可以像下面這樣配置日志路徑以及日志高亮。
# 配置文件:application.yml logging: file: name: boot.log pattern: # 日志高亮 file: '%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx'
下面是在 Spring Boot Admin 監測頁面上查看的客戶端應用日志。
到此,關于“Spring Cloud整合Spring Boot Admin方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。