溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Spring Cloud整合Spring Boot?Admin方法是什么

發(fā)布時(shí)間:2021-12-20 10:28:01 來源:億速云 閱讀:254 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Spring Cloud整合Spring Boot Admin方法是什么”,在日常操作中,相信很多人在Spring Cloud整合Spring Boot Admin方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Spring Cloud整合Spring Boot Admin方法是什么”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

    1. Spring Boot Admin 是什么

    Spring Boot Admin 是由 codecentric 組織開發(fā)的開源項(xiàng)目,使用 Spring Boot Admin 可以管理和監(jiān)控你的 Spring Boot 項(xiàng)目。

    它分為客戶端和服務(wù)端兩部分,客戶端添加到你的 Spring Boot 應(yīng)用增加暴漏相關(guān)信息的 HTTP 接口,然后注冊(cè)到 Spring Boot Admin 服務(wù)端,這一步驟可以直接向服務(wù)端注冊(cè),也可以通過 Eureka 或者 Consul 進(jìn)行注冊(cè)。

    而 Spring Boot Admin Server 通過 Vue.js 程序監(jiān)控信息進(jìn)行可視化呈現(xiàn)。并且支持多種事件通知操作。

    2. Spring Boot Admin 服務(wù)端

    Spring Boot Admin 服務(wù)端是基于 Spring Boot 項(xiàng)目的,如何創(chuàng)建一個(gè) Spring Boot 項(xiàng)目這里不提,你可以參考之前文章或者從 https://start.spring.io/ 直接獲得一個(gè) Spring Boot 項(xiàng)目。

    2.1. 添加依賴(服務(wù)端)

    只需要添加 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>
            <!--安全認(rèn)證框架-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-security</artifactId>
            </dependency>

    2.2. 配置 application.yml

    server:
      port: 8000
     
    ####服務(wù)監(jiān)控server端
    spring:
      application:
        name: wireless-admin-server
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848
      security:
        user:
          name: admin
          password: admin

    2.3啟動(dòng)類:AdminServerMain

    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);
        }
    }

    2.4配置類 :SecuritySecureConfig (直接cp官方文檔)

    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()
                    //授予對(duì)所有靜態(tài)資產(chǎn)和登錄頁面的公共訪問權(quán)限
                    .antMatchers(adminContextPath + "/assets/**").permitAll()
                    .antMatchers(adminContextPath + "/login").permitAll()
                    //必須對(duì)每個(gè)其他請(qǐng)求進(jìn)行身份驗(yàn)證
                    .anyRequest().authenticated()
                    .and()
                    //配置登錄和注銷
                    .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
                    .logout().logoutUrl(adminContextPath + "/logout").and()
                    //啟用HTTP-Basic支持。這是Spring Boot Admin Client注冊(cè)所必需的
                    .httpBasic().and()
                    .csrf()
                    .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
                    .ignoringAntMatchers(
                            //	禁用CRSF保護(hù)Spring引導(dǎo)管理客戶端用來注冊(cè)的端點(diǎn)。
                            adminContextPath + "/instances",
                            // 禁用執(zhí)行器端點(diǎn)的CRSF保護(hù)
                            adminContextPath + "/actuator/**"
                    );
        } 
    }

    Spring Cloud整合Spring Boot?Admin方法是什么

    3. Spring Boot Admin 客戶端

    創(chuàng)建 Spring Boot 項(xiàng)目依舊不提,這里只需要添加 Spring Boot Admin 客戶端需要的依賴,在項(xiàng)目啟動(dòng)時(shí)就會(huì)增加相關(guān)的獲取信息的 API 接口。然后在 Spring Boot 配置文件中配置 Spring Boot Admin 服務(wù)端,就可以進(jìn)行監(jiān)控了。

    3.1 客戶端依賴

    <      !--服務(wù)監(jiān)控客戶端-->
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-client</artifactId>
                <version>2.2.2</version>
            </dependency>
            <!--alibaba-nacos-discovery 注冊(cè)中心-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            </dependency>

    3.2 客戶端配置

    客戶端配置主要為了讓客戶端可以成功向服務(wù)端注冊(cè),所以需要配置客戶端所在應(yīng)用相關(guān)信息以及 Spring Boot Admin Server 服務(wù)端的 url。

    server:
      port: 8761
     
    spring:
      application:
        name: wireless-code-generatr
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848
     
    #### 暴露端點(diǎn)
    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: "*" 公開了所有的端口,對(duì)于生產(chǎn)環(huán)境,應(yīng)該自信的選擇要公開的接口。

    3.3. 客戶端運(yùn)行

    啟動(dòng)客戶端會(huì)暴漏相關(guān)的運(yùn)行狀態(tài)接口,并且自動(dòng)向配置的服務(wù)端發(fā)送注冊(cè)信息。

    4. Spring Boot Admin 功能

    Spring Cloud整合Spring Boot?Admin方法是什么

    點(diǎn)擊監(jiān)控頁面上的在線的應(yīng)用實(shí)例,可以跳轉(zhuǎn)到應(yīng)用實(shí)例詳細(xì)的監(jiān)控管理頁面,也就是 Vue.js 實(shí)現(xiàn)的 web 展示。

    Spring Boot Admin Server 可以監(jiān)控的功能很多,使用起來沒有難度,

    下面描述下可以監(jiān)測(cè)的部分內(nèi)容:

    • 應(yīng)用運(yùn)行狀態(tài),如時(shí)間、垃圾回收次數(shù),線程數(shù)量,內(nèi)存使用走勢(shì)。

    • 應(yīng)用性能監(jiān)測(cè),通過選擇 JVM 或者 Tomcat 參數(shù),查看當(dāng)前數(shù)值。

    • 應(yīng)用環(huán)境監(jiān)測(cè),查看系統(tǒng)環(huán)境變量,應(yīng)用配置參數(shù),自動(dòng)配置參數(shù)。

    • 應(yīng)用 bean 管理,查看 Spring Bean ,并且可以查看是否單例。

    • 應(yīng)用計(jì)劃任務(wù),查看應(yīng)用的計(jì)劃任務(wù)列表。

    • 應(yīng)用日志管理,動(dòng)態(tài)更改日志級(jí)別,查看日志。

    • 應(yīng)用 JVM 管理,查看當(dāng)前線程運(yùn)行情況,dump 內(nèi)存堆棧信息。

    • 應(yīng)用映射管理,查看應(yīng)用接口調(diào)用方法、返回類型、處理類等信息。

    上面提到的日志管理,可以動(dòng)態(tài)的更改日志級(jí)別,以及查看日志。默認(rèn)配置下是只可以動(dòng)態(tài)更改日志級(jí)別的,如果要在線查看日志,就需要手動(dòng)配置日志路徑了。

    客戶端上可以像下面這樣配置日志路徑以及日志高亮。

    # 配置文件: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 監(jiān)測(cè)頁面上查看的客戶端應(yīng)用日志。

    Spring Cloud整合Spring Boot?Admin方法是什么

    到此,關(guān)于“Spring Cloud整合Spring Boot Admin方法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI