SpringCloud 2025 整合 SpringBoot Admin 监控实时日志与鉴权

环境准备
确保项目基于 SpringBoot 3.x 和 SpringCloud 2025.0.0 构建,需引入以下依赖:

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
    <version>3.2.0</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

配置 SpringBoot Admin Server

application.yml 中启用监控端点并配置基础安全:

spring:
  boot:
    admin:
      ui:
        title: "SpringBoot Admin 2025"
      context-path: /admin
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: always

实现实时日志监控

客户端应用需暴露日志端点,并添加依赖:

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

客户端配置示例:

spring:
  boot:
    admin:
      client:
        url: http://localhost:8080/admin
        instance:
          name: "Service-A"
management:
  endpoint:
    logfile:
      enabled: true

集成鉴权功能

通过 Spring Security 保护 Admin Server 访问:

@Configuration
@EnableWebSecurity
public class SecurityConfig {
    @Bean
    SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
            .authorizeHttpRequests(req -> req
                .requestMatchers("/admin/assets/**").permitAll()
                .anyRequest().authenticated()
            )
            .formLogin(form -> form
                .loginPage("/admin/login")
                .defaultSuccessUrl("/admin")
            );
        return http.build();
    }
}

日志实时推送配置

使用 WebSocket 或 SSE 实现实时日志推送。在 Admin Server 中启用通知:

spring:
  boot:
    admin:
      notify:
        logfile:
          enabled: true

在这里插入图片描述

注意事项

  • 客户端需确保 logging.file.namelogging.file.path 已配置,日志文件可被读取。
  • 鉴权配置需与业务系统权限体系对齐,避免权限冲突。
  • 生产环境建议结合 OAuth2 或 JWT 进行更严格的访问控制。
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐