Spring Boot Admin 监控微服务服务器运行状态

Spring Boot Admin 是一个开源工具,用于集中监控和管理 Spring Boot 微服务应用。它通过可视化界面展示应用的健康状态、性能指标、日志信息等,帮助运维人员快速定位问题。以下是实现步骤:


1. 搭建 Admin 服务端

创建一个 Spring Boot 项目作为监控中心,添加依赖:

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
    <version>3.1.5</version>
</dependency>

在启动类启用 Admin 功能:

@SpringBootApplication
@EnableAdminServer
public class AdminServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(AdminServerApplication.class, args);
    }
}

配置文件 application.yml

server:
  port: 8080  # Admin 服务端端口


2. 配置微服务客户端

在需要被监控的微服务项目中添加依赖:

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>3.1.5</version>
</dependency>

配置文件 application.yml

spring:
  boot:
    admin:
      client:
        url: http://localhost:8080  # 指向 Admin 服务端地址
  application:
    name: user-service  # 微服务名称(用于标识)


3. 核心监控功能

启动服务端和客户端后,访问 http://localhost:8080 可查看:

  • 应用概览
    所有注册微服务的状态(UP/DOWN)、实例数量。
  • 健康检查
    JVM 内存、磁盘空间、数据库连接等健康指标。
  • 实时日志
    动态查看应用日志(需额外配置 logging.file.path)。
  • 性能监控
    HTTP 请求响应时间、线程池状态、垃圾回收频率。
  • 环境配置
    应用的配置文件参数(如 spring.datasource.url)。

4. 安全增强(可选)

添加登录认证保护监控面板:

# Admin 服务端配置
spring:
  security:
    user:
      name: admin
      password: secure123

客户端需同步配置:

spring:
  boot:
    admin:
      client:
        username: admin
        password: secure123


5. 告警通知

集成邮件/Slack 告警(示例:邮件通知):

spring:
  boot:
    admin:
      notify:
        mail:
          to: admin@example.com
          from: alert@system.com
          enabled: true


总结

Spring Boot Admin 的核心优势:

  • 轻量集成:无需复杂 Agent,依赖 Starter 即可接入。
  • 集中管理:统一查看所有微服务状态。
  • 开箱即用:内置健康检查、性能指标、日志聚合。
  • 可扩展性:支持自定义监控指标和通知渠道。

注意:生产环境建议结合 Prometheus + Grafana 实现更细粒度的指标存储和可视化。

更多推荐