当前位置: 首页 > news >正文

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.dtcms.com/a/308776.html

相关文章:

  • 另外几种语言挑战100万行字符串文本排序
  • Web开发-PHP应用原生语法全局变量数据接受身份验证变量覆盖任意上传(代码审计案例)
  • 风力发电场景下设备状态监测与智能润滑预测性维护策略
  • 【Python气象可视化】用Cartopy+Matplotlib绘制青藏高原涡移动轨迹图(附完整代码+颜色渐变时间轴)
  • 数据库学习--------数据库日志类型及其与事务特性的关系
  • 题目:BUUCTF之rip(pwn)
  • [算法]Leetcode3487
  • 【高等数学】第七章 微分方程——第五节 可降阶的高阶微分方程
  • 第三章·数据链路层
  • 前端路由深度解析:Hash 模式 vs. History 模式
  • 数字化应急预案:构筑现代安全防线
  • 实时语音流分段识别技术解析:基于WebRTC VAD的智能分割策略
  • MySQL 中的事务隔离级别有哪些?分别解决什么问题?
  • 图结构知识构造方法详解 ——面向垂直领域的高效知识库构建方案
  • CentOS 7 编译 Redis 6.x 完整教程(解决 GCC 版本不支持 C11)
  • lesson29:Python元类与抽象类深度解析:从接口定义到元编程实践
  • mysql 日志机制
  • Java 接口(上)
  • 哈希相关的模拟实现
  • 04百融云策略引擎项目laravel实战步完整安装composer及tcpdf依赖库和验证-优雅草卓伊凡
  • 常用的ROS(Robot Operating System,机器人操作系统)包,用于机器人软件开发的工具和库
  • isasssim robotiq夹爪踩坑
  • 同个主机拉取不同权限仓库的方法
  • 疯狂星期四文案网第25天运营日记
  • Product Hunt 每日热榜 | 2025-07-31
  • 零信任网络概念及在网络安全中的应用
  • 2025年渗透测试面试题总结-2025年HW(护网面试) 80(题目+回答)
  • 高等教育领域:依托VR教育服务,推动科研与教学的创新性发展
  • 智慧安防徘徊识别误报率↓77%:陌讯时序 - 空间融合算法实战解析
  • thinkphp3.2 中使用redis