最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot應(yīng)用監(jiān)控Actuator使用隱患及解決方案

 更新時間:2024年07月05日 09:23:48   作者:名字咋這么難起捏  
SpringBoot的Actuator 模塊提供了生產(chǎn)級別的功能,比如健康檢查,審計,指標(biāo)收集,HTTP 跟蹤等,幫助我們監(jiān)控和管理Spring Boot 應(yīng)用,本文將給大家介紹SpringBoot應(yīng)用監(jiān)控Actuator使用隱患及解決方案,需要的朋友可以參考下

Actuator介紹

SpringBoot的Actuator 模塊提供了生產(chǎn)級別的功能,比如健康檢查,審計,指標(biāo)收集,HTTP 跟蹤等,幫助我們監(jiān)控和管理Spring Boot 應(yīng)用。這個模塊是一個采集應(yīng)用內(nèi)部信息暴露給外部的模塊,如自動化配置信息、創(chuàng)建的Spring beans信息、系統(tǒng)環(huán)境變量的配置信息以及Web請求的詳細(xì)信息等(上述的功能都可以通過HTTP 和 JMX 訪問)。如果使用不當(dāng)或者一些不經(jīng)意的疏忽,可能造成信息泄露等嚴(yán)重的安全隱患。(PS:樓主這里就因為某同事的疏忽上線后被檢測到未授權(quán)訪問然后勒令整改的)

Actuator核心是:Endpoints,它用來監(jiān)視應(yīng)用程序及交互,actuator中內(nèi)置了非常多的Endpoints(如:health、info、beans、httptrace等等),但同時也允許用戶根據(jù)自己需求自定義端點。

Endpoints 主要分成兩類:原生端點和用戶自定義端點;自定義端點主要是指擴(kuò)展性,用戶可以根據(jù)自己的實際應(yīng)用,定義一些比較關(guān)心的指標(biāo),在運行期進(jìn)行監(jiān)控。

常見端點如下表格所示

EndPoints描述
auditevents公開當(dāng)前應(yīng)用程序的審核事件信息。
beans顯示應(yīng)用程序中所有Spring bean的完整列表。 
caches 暴露可用的緩存。
conditions顯示在配置和自動配置類上評估的條件以及它們匹配或不匹配的原因。
configprops顯示所有的整理列表@ConfigurationProperties,查看配置屬性,包括默認(rèn)配置 
env 露出Spring的屬性的各種環(huán)境變量,后面可跟/{name}查看具體的值
flyway顯示已應(yīng)用的任何Flyway數(shù)據(jù)庫遷移。 
health顯示應(yīng)用健康信息,2.0以后需要在配置里show-details打開開關(guān) 
httptrace 顯示HTTP跟蹤信息,2.0以后需要手動打開
info 顯示任意應(yīng)用信息,是在配置文件里自己定義的
integrationgraph 顯示Spring Integration圖。
loggers 顯示和修改應(yīng)用程序中記錄器的配置。
liquibase 顯示已應(yīng)用的任何Liquibase數(shù)據(jù)庫遷移。
scheduledtasks 顯示應(yīng)用程序中的計劃任務(wù)。

感興趣的小伙伴可自行查閱

使用Actuator

使用Actuator監(jiān)控只需要在Maven中引入依賴“spring-boot-starter-actuator”即可

        <!-- 監(jiān)控端點-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

在YML配置文件中配置actuator的訪問路徑,開放端口

management:
  endpoints:
    web:
      # actuator的訪問路徑,默認(rèn)/actuator
      base-path: /actuator
      # 設(shè)置是否暴露端點 默認(rèn)只有health和info可見
      exposure:
        # 如需暴漏指定端口,在下方輸入,端口名稱,多個端點之間用“,”分割。如:env,session。開放所        
        # 有用*號表示,如下所示
        include: "*"
  #新開監(jiān)控端口,不設(shè)置采取項目端口(默認(rèn))
  server:
    port: 8081  
  endpoint:
    health:
      # 顯示db、redis、rabbti連接情況等
      show-details: always 
    shutdown:
      enabled: true  

到這里引入Actuator已完成,啟動項目在瀏覽器地址欄輸入項目路徑后拼上/actuator后即可訪問(注:如果上面配置過地址這里就不應(yīng)輸入/actuator,應(yīng)該為你配置的地址。如需查詢某一個端點就在/actuator后面拼接上。如env:localhost:8080/actuator/env)

配置Actuator可視化界面

看上圖所列出的讓人看得不是很清楚,這時候可以使用monitor來構(gòu)建界面,使用也很簡單,只需要引入“spring-boot-monitor”即可

        <dependency>
            <groupId>cn.pomit</groupId>
            <artifactId>spring-boot-monitor</artifactId>
            <version>0.0.4</version>
        </dependency>

引入完成后啟動項目,這個時候就不是訪問/actuator而是/monitor來進(jìn)行訪問。

Actuator配置安全訪問

需要使用Actuator監(jiān)控服務(wù)端點情況時,如果在本地的話問題不大,但是放到線上就會有問題。這個時候我們需要對Actuator進(jìn)行保護(hù)。

比如說限制開放某一端點,我們可以在yml中配置(env舉例):

endpoint:
 env:
    enabled: false

也可以通過搭配security模塊來進(jìn)行登錄限制。

首先引入maven依賴“spring-boot-starter-security”依賴

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

在yml配置文件中定義賬號密碼(注:也可以不在配置文件中定義,在配置類中定義)

spring:
  security:
    user:
      name: root
      password: 123456
      roles: ADMIN

編寫配置類(注:SpringBoot2.0拋棄了之前的引用方式,故此使用配置類方法,該實例只針對actuator進(jìn)行攔截,各位可根據(jù)實際情況調(diào)整)

@Configuration
@EnableWebSecurity
public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter {
 
    @Override
    protected void configure(HttpSecurity http) {
        http.csrf().disable();
        http.formLogin().and()
                .authorizeRequests()
                .antMatchers("/**actuator/**","/**monitor/**")
                .authenticated()
                .anyRequest()
                .permitAll()
                .and()
                .httpBasic();
    }
 
    //添加賬號、密碼、權(quán)限
    @Autowired
    public  void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder())
                .withUser("root")
                .password(new BCryptPasswordEncoder().encode("123456"))
                .roles("ADMIN");
    }
 
 
}

啟動項目訪問該地址會自動跳轉(zhuǎn)到登錄界面,使用配置好的賬號密碼登錄即可。

 注:也可更改驗證步驟搭配數(shù)據(jù)庫進(jìn)行登錄,在此就不多說了感興趣的小伙伴可自行研究展開了

Actuator安全建議

  • 設(shè)置Actuator獨立端口,并且不對外開放
  • 設(shè)置特定訪問IP地址,非設(shè)定IP自動攔截
  • 設(shè)置訪問路徑不采取默認(rèn)路徑
  • 按需開放端點
  • 搭配security模塊進(jìn)行訪問加密

以上就是SpringBoot應(yīng)用監(jiān)控Actuator使用隱患及解決方案的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot Actuator使用隱患的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java中@Configuration使用場景

    java中@Configuration使用場景

    本文主要介紹了java中@Configuration使用場景,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • idea運行java的配置詳細(xì)教程(包含maven,mysql下載配置)

    idea運行java的配置詳細(xì)教程(包含maven,mysql下載配置)

    程序員們在開發(fā)的時候,一定會用到Intellij?IDEA這個集成開發(fā)環(huán)境,這篇文章主要給大家介紹了關(guān)于idea運行java的配置(包含maven,mysql下載配置)的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • 解決IDEA使用springBoot創(chuàng)建項目,lombok標(biāo)注實體類后編譯無報錯,但是運行時報錯問題

    解決IDEA使用springBoot創(chuàng)建項目,lombok標(biāo)注實體類后編譯無報錯,但是運行時報錯問題

    文章詳細(xì)描述了在使用lombok的@Data注解標(biāo)注實體類時遇到編譯無誤但運行時報錯的問題,分析了可能的原因,并提供了解決步驟
    2025-01-01
  • java參數(shù)傳遞之值傳遞和引用傳遞

    java參數(shù)傳遞之值傳遞和引用傳遞

    這篇文章主要介紹了java參數(shù)傳遞之值傳遞和引用傳遞,引用了兩個代碼實例來講解,有感興趣的同學(xué)可以研究下
    2021-02-02
  • Java Set 中的常用方法示例總結(jié)

    Java Set 中的常用方法示例總結(jié)

    Set是Java集合框架(Collection Framework)中最常用的接口之一,具有元素唯一、不允許重復(fù) 的特性,這篇文章將全面總結(jié)Java Set的常用方法并通過示例進(jìn)行講解,主要用于日常查詢使用,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • Spring?Boot?整合?Redis?實現(xiàn)數(shù)據(jù)緩存案例詳解

    Spring?Boot?整合?Redis?實現(xiàn)數(shù)據(jù)緩存案例詳解

    Springboot緩存,默認(rèn)使用的是ConcurrentMap的方式來實現(xiàn)的,然而我們在項目中并不會這么使用,本文介紹SpringBoot整合Redis來實現(xiàn)數(shù)據(jù)的緩存,感興趣的朋友一起看看吧
    2025-05-05
  • SpringCloud消息總線Bus配置中心實現(xiàn)過程解析

    SpringCloud消息總線Bus配置中心實現(xiàn)過程解析

    這篇文章主要介紹了SpringCloud消息總線Bus配置中心實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • idea插件無法下載4的種解決方式

    idea插件無法下載4的種解決方式

    這篇文章主要介紹了idea插件無法下載4的種解決方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • MyBatis-Plus分頁時排序的實現(xiàn)方法

    MyBatis-Plus分頁時排序的實現(xiàn)方法

    這篇文章主要介紹了MyBatis-Plus分頁時的排序,分頁時排序的方法,后端OrderItems排序、Wrapper排序前端指定排序,文章結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • Java實現(xiàn)棧和最小棧的方法

    Java實現(xiàn)棧和最小棧的方法

    棧(Stack)是一種常用的數(shù)據(jù)結(jié)構(gòu),其核心特點是先進(jìn)后出,這篇文章主要介紹了Java實現(xiàn)棧和最小棧的相關(guān)操作,需要的朋友可以參考下
    2026-02-02

最新評論

明水县| 辉南县| 雅安市| 莱西市| 滨海县| 九江市| 宜黄县| 阳西县| 南宁市| 金乡县| 安仁县| 信阳市| 黑山县| 桃园县| 南澳县| 德兴市| 恩施市| 阳高县| 永靖县| 泌阳县| 涿鹿县| 望城县| 滨海县| 虎林市| 邵阳县| 西昌市| 容城县| 保定市| 汉中市| 裕民县| 芒康县| 江华| 东乡县| 靖边县| 五峰| 巫山县| 荣昌县| 吴川市| 大荔县| 安多县| 呼图壁县|