Spring Boot Admin 監控模塊筆記-實現全鏈路追蹤

一、概述

Spring Boot Admin(SBA)是一個用于監控和管理 Spring Boot 應用程序的工具。它提供了一個 Web 界面,可以集中管理多個 Spring Boot 應用程序的健康狀態、指標、日志、配置等信息。通過 SBA,你可以輕松地監控和管理你的微服務架構。

二、核心組件

1. SBA Server

  • 作用:作為監控中心,提供一個 Web 界面,用于展示所有被監控服務的狀態。

  • 啟動方式

    @SpringBootApplication
    @EnableAdminServer
    public class MonitorApplication {public static void main(String[] args) {SpringApplication.run(MonitorApplication.class, args);}
    }
    
  • 配置文件application.yml):

    server:port: 9100spring:application:name: know-monitorcloud:nacos:discovery:server-addr: ${nacos.server}namespace: ${spring.profiles.active}group: monitorsecurity:user:name: adminpassword: 123456management:endpoints.web.exposure.include: "*"
    

2. SBA Client

  • 作用:運行在每個被監控的服務中,將自身信息注冊到 SBA Server,并提供 /actuator 端點供 SBA Server 采集數據。

  • 依賴

    <dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-client</artifactId>
    </dependency>
    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    
  • 配置文件application.yml):

    spring:application:name: order-serviceboot:admin:client:url: <http://know-monitor:9100>
    management:endpoints.web.exposure.include: health,info,metrics,env,loggers
    

三、監控功能

1. 健康狀態

  • 功能:顯示服務的健康狀態(UP/DOWN/OFFLINE)。

  • 端點/actuator/health

  • 示例

    {"status": "UP","components": {"diskSpace": {"status": "UP","details": {"total": 250790436864,"free": 107374182400,"threshold": 10485760}},"db": {"status": "UP","details": {"database": "MySQL","hello": 1}}}
    }
    

2. 指標

  • 功能:顯示服務的各類指標,如 JVM 內存、CPU 使用率、線程池狀態等。

  • 端點/actuator/metrics

  • 示例

    {"names": ["jvm.memory.used","jvm.threads.live","process.cpu.usage",...]
    }
    

3. 日志

  • 功能:動態查看和修改日志級別,無需重啟服務。

  • 端點/actuator/loggers

  • 示例

    {"levels": ["TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF"],"configuredLevel": "INFO","loggers": {"ROOT": {"configuredLevel": "INFO"},"org.springframework.web": {"configuredLevel": "DEBUG"}}
    }
    

4. 配置信息

  • 功能:查看服務的配置信息,包括環境變量、配置文件等。

  • 端點/actuator/configprops

  • 示例

    {"propertySources": [{"name": "applicationConfig: [classpath:/application.yml]","properties": {"spring.application.name": {"value": "order-service"},...}}]
    }
    

5. 環境信息

  • 功能:查看服務的環境信息,如系統屬性、環境變量等。

  • 端點/actuator/env

  • 示例

    {"activeProfiles": ["dev"],"propertySources": [{"name": "systemProperties","properties": {"java.version": {"value": "16"},...}}]
    }
    

6. 線程信息

  • 功能:查看服務的線程池狀態,包括線程數、活躍線程數等。

  • 端點/actuator/threaddump

  • 示例

    [{"threadName": "main","threadId": 1,"blockedTime": -1,"blockedCount": 0,...}
    ]
    

四、部署與使用

1. 部署 SBA Server

  1. 啟動 Nacos 服務。

  2. 打包 know-monitor 項目:

    mvn clean package
    
  3. 啟動監控中心:

    java -jar target/know-monitor.jar --spring.profiles.active=dev
    
  4. 瀏覽器訪問 http://localhost:9100,使用默認賬號 admin 和密碼 123456 登錄。

2. 部署業務服務

  1. 在業務服務項目中添加 SBA Client 和 Actuator 依賴。
  2. 配置 application.yml,指定 SBA Server 的地址。
  3. 啟動業務服務,服務將自動注冊到 SBA Server。

3. 使用 SBA UI

  • 登錄 SBA Server 的 Web 界面。
  • 在實例列表中查看所有被監控的服務。
  • 點擊具體服務,查看其健康狀態、指標、日志、配置等詳細信息。

五、擴展功能

1. 安全配置

  • 自定義登錄頁面

    @Configuration
    public class SecurityConfig {@Beanpublic SecurityFilterChain filterChain(HttpSecurity http) throws Exception {http.csrf().disable().authorizeHttpRequests(auth -> auth.anyRequest().authenticated()).formLogin(form -> form.loginPage("/login").permitAll()).logout(logout -> logout.permitAll());return http.build();}
    }
    
  • OAuth2 集成:通過 Spring Security 配置 OAuth2 客戶端,實現單點登錄。

2. 動態配置

  • Nacos 配置中心:通過 Nacos 動態更新配置,無需重啟服務。

  • 配置文件

    spring:cloud:nacos:config:server-addr: ${nacos.server}namespace: ${spring.profiles.active}group: ${nacos.config.group}
    

3. 鏈路追蹤

  • 集成 Zipkin:通過 Sleuth 和 Zipkin 實現分布式鏈路追蹤。

  • 依賴

    <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zipkin</artifactId>
    </dependency>
    
  • 配置文件

    spring:zipkin:base-url: <http://zipkin-server:9411>sleuth:sampler:probability: 1.0
    

六、總結

Spring Boot Admin 提供了一個強大的監控平臺,可以集中管理多個 Spring Boot 應用程序。通過簡單的配置和依賴引入,你可以輕松地實現服務的健康狀態監控、指標采集、日志管理、配置管理等功能。結合 Nacos、Zipkin 等工具,可以進一步擴展監控系統的功能,滿足復雜的微服務監控需求。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/917090.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/917090.shtml
英文地址,請注明出處:http://en.pswp.cn/news/917090.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

容器化與Docker核心原理

目錄 專欄介紹 作者與平臺 您將學到什么&#xff1f; 學習特色 容器化與Docker核心原理 引言&#xff1a;為什么容器化成為云計算時代的基石&#xff1f; 容器化技術全景與Docker核心原理&#xff1a;從概念到實踐 文章摘要 1. 引言&#xff1a;為什么容器化成為云計算…

掌握Python三大語句:順序、條件與循環

PS不好意思各位&#xff0c;由于最近筆者在參加全國大學生電子設計大賽&#xff0c;所以最近會出現停更的情況&#xff0c;望大家諒解&#xff0c;比賽結束后我會加大力度&#xff0c;火速講Python的知識給大家寫完&#x1f396;?&#x1f396;?&#x1f396;?&#x1f396;…

JAVA結合AI

Java 與人工智能&#xff08;AI&#xff09;的結合正經歷從技術探索到深度融合的關鍵階段。以下從技術生態、應用場景、工具創新、行業實踐及未來趨勢五個維度展開分析&#xff0c;結合最新技術動態與企業級案例&#xff0c;揭示 Java 在 AI 時代的獨特價值與發展路徑。一、技術…

本土DevOps平臺Gitee如何重塑中國研發團隊的工作流

本土DevOps平臺Gitee如何重塑中國研發團隊的工作流 在數字化轉型浪潮席卷各行各業的當下&#xff0c;軟件開發效率已成為企業競爭力的核心指標。Gitee DevOps作為專為中國開發團隊打造的本土化研發管理平臺&#xff0c;正在改變國內技術團隊的工作方式。該平臺通過從代碼管理到…

5G MBS(組播廣播服務)深度解析:從標準架構到商用實踐

一、MBS技術背景與核心價值 1.1 業務需求驅動 隨著超高清視頻(4K/8K)、多視角直播、XR元宇宙應用爆發式增長,傳統單播傳輸面臨帶寬浪費(相同內容重復發送)與擁塞風險(萬人并發場景)的雙重挑戰。5G MBS通過點對多點(PTM)傳輸實現內容一次發送、多終端接收,頻譜效率提…

如何將照片從 realme 手機傳輸到電腦?

對于 realme 用戶來說&#xff0c;將照片傳輸到電腦可以有多種用途&#xff0c;從釋放設備空間到在單獨的存儲設備上創建備份。這個過程不僅有助于高效管理設備內存&#xff0c;還可以讓您利用電腦上強大的照片編輯軟件進行高級增強和創意項目。了解如何將照片從 realme 手機傳…

Centos 7部署.NET 8網站項目

簡介 本文詳細介紹了在CentOS 7系統上部署.NET 8網站項目的完整流程&#xff0c;主要內容包括&#xff1a;系統版本更新與檢查、PostgreSQL數據庫的安裝配置&#xff08;含防火墻設置、數據庫初始化及遠程訪問配置&#xff09;、Nginx Web服務的安裝與防火墻配置。文章通過分步…

Windows 11下IDEA中使用git突然變得卡慢及解決辦法

1. 表象 使用idea的git進行update、commit、push等操作時&#xff0c;極度卡慢。需等待幾十秒到幾分鐘。修改文件后&#xff0c;git刷新也不及時。update命令有時候無法點擊。 2.解決方法 停止PC Manager ServiceCtrl shift esc : 打開任務管理器找到服務&#xff1a; 服務中…

MyBatis 的兩級緩存機制

現實分布式項目中會不會開啟mybatis的二級緩存&#xff1f; 在分布式項目中&#xff0c;是否開啟MyBatis的二級緩存需結合具體場景和技術方案綜合評估。 以下是關鍵考量因素&#xff1a; 一、默認二級緩存的局限性 隔離性問題&#xff1a;MyBatis默認的二級緩存基于HashMap實…

分布式原子序列(Distributed Atomic Sequence)

這段內容是關于 Apache Ignite 中的 分布式原子序列&#xff08;Distributed Atomic Sequence&#xff09;&#xff0c;也就是一個分布式 ID 生成器。我們來一步步深入理解它的原理、用途和使用方式。&#x1f539; 一、核心概念&#xff1a;什么是分布式 ID 生成器&#xff1f…

VSCode——插件分享:Markdown PDF

該插件可以將markdown編寫內容轉成PDF。 ? 支持渲染圖表、代碼高亮、表格等 Markdown 內容 安裝 Visual Studio Code安裝插件&#xff1a;Markdown PDF 打開擴展商店&#xff0c;搜索 Markdown PDF 并安裝 打開你的 .md 文件右鍵 → 點擊 Markdown PDF: Export (pdf)自動生成 …

rust-模塊樹中引用項的路徑

模塊樹中引用項的路徑 為了告訴 Rust 在模塊樹中如何找到某個項&#xff0c;我們使用路徑&#xff0c;就像在文件系統中導航時使用路徑一樣。要調用一個函數&#xff0c;我們需要知道它的路徑。 路徑有兩種形式&#xff1a; 絕對路徑是從 crate 根開始的完整路徑&#xff1b…

mac n切換node版本報錯Bad CPU type in executable

該node版本僅支持intel芯片&#xff0c;不支持Apple 芯片&#xff08;M1/M2/M3/M4&#xff09;&#xff0c;所以需要下載Rosetta 2 &#xff0c;讓node可以在搭載 Apple 芯片的 Mac 上運行。 env: node: Bad CPU type in executable /opt/homebrew/bin/n: line 753: /usr/local…

經典算法之美:冒泡排序的優雅實現

經典算法之美&#xff1a;冒泡排序的優雅實現基本概念工作原理介紹具體實現代碼實現總結基本概念 冒泡排序是一種簡單的排序算法&#xff0c;通過重復比較相鄰的元素并交換它們的位置來實現排序。它的名稱來源于較小的元素像氣泡一樣逐漸“浮”到數組的頂端。 工作原理 介紹…

click和touch事件觸發順序 糊里糊涂解決的奇怪bug

問題詳情 在嵌入式硬件設備里&#xff0c;測試 “點擊input密碼框&#xff0c;彈出第三方自帶鍵盤&#xff0c;點擊密碼框旁的小眼睛&#xff0c;切換輸入內容加密狀態&#xff0c;鍵盤收起/彈出狀態不變” 的功能邏輯&#xff1b;實際情況卻是 “點擊鍵盤或input框之外的任何地…

【0基礎PS】Photoshop (PS) 理論知識

目錄前言一、Photoshop 核心概念與定位?二、圖像基礎理論?三、圖層理論&#xff1a;PS 的核心工作機制?四、選區與蒙版?五、調色核心理論?六、常用文件格式?學習建議?總結前言 在數字圖像編輯領域&#xff0c;Photoshop&#xff08;簡稱 PS&#xff09;無疑是行業標桿級…

數據庫 設計 pdm comment列表顯示和生成建表sql

按如下步驟 生成見建表語句 comment非空使用comment 生成字段注釋&#xff0c; 空的時候使用name 生成字段注釋 sql腳本模板編輯 參考 PowerDesigner生成mysql字段comment 注釋-騰訊云開發者社區-騰訊云 版本不同這邊的設置不同 這個勾打上

嵌入式基礎知識復習(C語言)

知識擴展7.28 嵌入式產品特點、開發環境、計算機組成、Linux終端初識1、嵌入式產品。特點&#xff1a;低功耗、根據用戶需求定制。硬件&#xff1a;arm處理器。軟件&#xff1a;Linux操作系統arm架構&#xff1a;精簡指令集、低功耗&#xff08;移動/嵌入式&#xff09;。 …

LeetCode Hot 100 尋找兩個正序數組的中位數

給定兩個大小分別為 m 和 n 的正序&#xff08;從小到大&#xff09;數組 nums1 和 nums2。請你找出并返回這兩個正序數組的 中位數 。算法的時間復雜度應該為 O(log (mn)) 。示例 1&#xff1a;輸入&#xff1a;nums1 [1,3], nums2 [2] 輸出&#xff1a;2.00000 解釋&#x…

監控場景視頻質量異常修復:陌訊動態增強算法實戰解析

原創聲明&#xff1a;本文為原創技術解析&#xff0c;核心技術參數與架構引用自《陌訊技術白皮書》&#xff0c;禁止未經授權轉載。一、行業痛點&#xff1a;視頻質量異常的連鎖難題在安防監控、智慧交通等場景中&#xff0c;視頻質量異常已成為 AI 分析的主要瓶頸。據行業報告…