springboot-admin对springboot项目监控

本文详细介绍如何使用SpringBoot Admin搭建管理界面,实现SpringBoot应用程序的可视化监控,包括服务端和客户端的配置步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

springboot-admin实在Spring Boot Actuator的基础上提供简洁的可视化WEB UI,是用来管理SpringBoot应用程序的一个简单的界面,功能如下:

  1. 显示 name/id 和版本号
  2. 显示在线状态
  3. Logging日志级别管理
  4. JMX beans管理
  5. Threads会话和线程管理
  6. Trace应用请求跟踪
  7. 应用运行参数信息,如:
    • Java 系统属性
    • Java 环境变量属性
    • 内存信息
    • Spring 环境属性

应用

1.新建springboot-admin服务端

引入服务端pom依赖:

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

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

		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-server-ui</artifactId>
			<version>2.0.1</version>
		</dependency>

		<!-- spring-security安全认证 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
		</dependency>

		<dependency>
			<groupId>org.jolokia</groupId>
			<artifactId>jolokia-core</artifactId>
		</dependency>

application.yml配置

server:
  port: 8080

#admin登录的用户名和密码
spring:
  application:
    name: admin-server

  #security用户配置
  security:
    user:
      name: admin
      password: admin

  boot:
    admin:
      context-path: /admin  
      discovery: true

management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: always

新建SecuritySecureConfig配置:

import de.codecentric.boot.admin.server.config.AdminServerProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;

/**
 * @Description: TODO(Springboot-Admin登录配置)
 * @Author: 爱飘de小子
 */
@Configuration
public class SecuritySecureConfig extends WebSecurityConfigurerAdapter{

    /**
     * -private
     * 定义Admin上下文路径
     */
    private final String adminContextPath;

    /**
     * 由于解决分布式Web应用程序中的身份验证和授权有多种方法,因此Spring Boot Admin不提供默认方法。默认情况下,spring-boot-admin-server-ui提供登录页面和注销按钮。
     * Spring Security配置
     * @param adminServerProperties
     */
    public SecuritySecureConfig(AdminServerProperties adminServerProperties) {
        this.adminContextPath = adminServerProperties.getContextPath();
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
        successHandler.setTargetUrlParameter("redirectTo");
        successHandler.setDefaultTargetUrl(adminContextPath + "/");

        http.authorizeRequests()
                .antMatchers(adminContextPath + "/assets/**").permitAll()
                .antMatchers(adminContextPath + "/login").permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
                .logout().logoutUrl(adminContextPath + "/logout").and()
                .httpBasic().and()
                .csrf().disable();
    }
}

启动类添加@EnableAdminServer注解:

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author 爱飘de小子
 */
@EnableAutoConfiguration
@EnableAdminServer
@SpringBootApplication
public class AdminServerApplication {

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

}

启动springboot项目即可访问: ip:port/admin

2.配置客户端(被监控的springboot项目)

pom文件添加依赖:

		<!-- springboot admin 客户端 -->
		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-starter-client</artifactId>
			<version>2.0.1</version>
		</dependency>

		<dependency>
			<groupId>org.jolokia</groupId>
			<artifactId>jolokia-core</artifactId>
		</dependency>
		<!-- web-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

application.yml配置:

spring:
  boot:
    admin:
      client:
        url: http://localhost:8080/
        username: admin
        password: admin
        instance:
          prefer-ip: true  #使用IP注册
          
#项目健康监控
management:
  endpoints:
    web:
      exposure:
        include: "*"
      base-path: /admin  #服务端配置的context-path
  endpoint:
    health:
      show-details: always

#项目信息 
info:
  app:
    #自定义显示信息
    name: "xxx"
    description: "xxx"
    version: "xx"
    environment: "xx"
    spring-boot-version: "2.0.1.RELEASE"
    spring-admin-version: "2.0.1"
  version: "1.0"
### 配置Spring Boot 1.5.6与Spring Boot Admin #### 创建Spring Boot应用程序并启用Admin服务 为了使Spring Boot 1.5.6能够集成Spring Boot Admin,在项目的启动类上需添加特定注解来激活管理功能。具体来说,通过`@EnableAdminServer`注解可以开启此特性[^2]。 ```java @SpringBootApplication @EnableAdminServer public class AdminApplication { public static void main(String[] args) { SpringApplication.run(AdminApplication.class, args); } } ``` 上述代码片段展示了如何创建一个简单的Spring Boot应用,并将其设置为Admin服务器实例。这允许其他Spring Boot客户端向该Admin服务器注册自己以便监控和管理。 #### 客户端配置 对于希望被纳入集中化管理和监控的应用程序,则需要在其依赖项中加入Spring Boot Admin Client库,并确保其能自动发现已部署的Admin Server。通常情况下,只需引入相应的Maven或Gradle依赖即可完成基本连接工作;而更详细的自定义选项则可通过application.properties文件中的属性进行调整。 在pom.xml里增加如下依赖: ```xml <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> <version>${admin.version}</version> </dependency> ``` 接着,在`src/main/resources/application.properties`内指定Admin server的位置: ```properties spring.boot.admin.client.url=http://localhost:8080/admin management.endpoints.web.exposure.include=* ``` 这段配置指定了Admin client应该联系哪个URL下的Admin server来进行注册操作,并开放了所有的actuator endpoint供远程访问。 #### 注意事项 当使用较旧版本如Spring Boot 1.5系列时,可能会遇到某些组件之间的兼容性问题。例如,在尝试升级分布式事务协调器LCN至更高版本的过程中就需要特别留意版本间的适配情况[^5]。因此建议开发者密切关注官方文档和技术社区发布的指南和支持信息,以解决可能出现的技术难题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值