Spring Boot Admin 快速入门详解

目录
  • 1、介绍
  • 2、服务端搭建
    • 2.1 引入依赖
    • 2.2 添加注解
    • 2.3 进行测试
    • 2.4 测试结果
  • 3、客户端搭建
    • 3.1 引入依赖
    • 3.2 编写配置
    • 3.3 进行测试
  • 4、安全性
    • 4.1 添加依赖
    • 4.2 编写配置
    • 4.3 编写配置类
    • 4.4 修改客户端配置
    • 4.5 进行测试
  • 总结

1、介绍

官网地址

Spring Boot Admin 是开源社区孵化的项目,用于对 Spring Boot 应用的管理和监控。Spring Boot Admin 分为服务端(spring-boot-admin-server)和客户端(spring-boot-admin-client),服务端和客户端之间采用 http 通讯方式实现数据交互;单体项目中需要整合 spring-boot-admin-client 才能让应用被监控。在 SpringCloud 项目中,spring-boot-admin-server 是直接从注册中心抓取应用信息,不需要每个微服务应用整合 spring-boot-admin-client 就可以实现应用的管理和监控。

2、服务端搭建

2.1 引入依赖

注意:版本要和 Spring Boot 版本对应,例如我的 Spring Boot 2.3.7.RELEASE,那么 Spring Boot Admin 对应的版本就是 2.3.x。

<!-- Spring Boot Admin 服务端依赖 -->
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
    <version>2.3.1</version>
</dependency>

2.2 添加注解

给启动类添加一个注解:@EnableAdminServer

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

2.3 进行测试

访问项目的端口号即可!

例如我配置的端口号是 9000,那么直接访问 http://localhost:9000/ 即可!

2.4 测试结果

3、客户端搭建

3.1 引入依赖

注意:版本要和 Spring Boot 版本对应,例如我的 Spring Boot 2.3.7.RELEASE,那么 Spring Boot Admin 对应的版本就是 2.3.x。

<!-- Spring Boot Admin 客户端依赖 -->
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>2.3.1</version>
</dependency>

3.2 编写配置

编写 application.yml 文件:

spring:
  application:
    name: Client
  boot:
    admin:
      client:
        # 配置 Admin Server(服务端的名字)
        url: http://localhost:9000
server:
  port: 9001
 # 开放端点用于 SpringBoot Admin 的监控
management:
  endpoints:
    web:
      exposure:
        include: '*'
logging:
  file:
    # 配置生成日志文件名称
    name: admin-client.log

3.3 进行测试

启动项目,然后访问服务端的 Web 管理界面:

4、安全性

这个 Spring Boot Admin 的管理后台不用账号密码就能直接访问,一点都不安全,因此要给它加上登录的功能。

参考 Spring Boot Admin 的官方文档,我们可以在 Admin-Server 端添加 Spring Security 相关依赖及就可以实现需要登录后才能访问网页管理面板。

官网文档地址

4.1 添加依赖

在服务端添加 Spring Security 依赖:

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

4.2 编写配置

编写 application.yml 文件,编写用户名密码:

server:
  port: 9000
spring:
  application:
    name: Server
  security:
    user:
      name: admin
      password: admin

4.3 编写配置类

编写 Spring Security 的配置类:

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    private final String adminContextPath;
     public SecurityConfig(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()
                // 1. 配置所有静态资源和登录页可以公开访问(匿名访问)
                .antMatchers(adminContextPath + "/assets/**").permitAll()
                .antMatchers(adminContextPath + "/login").permitAll()
                .anyRequest().authenticated()
                .and()
                // 2. 配置登录和登出路径
                .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
                .logout().logoutUrl(adminContextPath + "/logout").and()
                // 3. 开启 http basic 支持,客户端注册时需要使用
                .httpBasic().and()
                .csrf()
                // 4. 开启基于 Cookie 的 CSRF 保护
                .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
                // 5. 忽略这些路径的 CSRF 保护以便客户端注册
                .ignoringAntMatchers(
                        adminContextPath + "/instances",
                        adminContextPath + "/actuator/**"
                );
    }
}

4.4 修改客户端配置

修改客户端的 application.yml 配置文件,添加用户名密码:

这里不添加用户名和密码的话,是连不上服务端的:

spring:
  application:
    name: Client
  boot:
    admin:
      client:
        # 配置 Admin Server(服务端的名字)
        url: http://localhost:9000
        # 配置用户名
        username: admin
        # 配置密码
        password: admin

4.5 进行测试

重启客户端和服务端项目

访问效果为:

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Spring Boot Admin实践详解

    在Spring Boot Actuator中提供很多像health.metrics等实时监控接口,可以方便我们随时跟踪服务的性能指标.Spring Boot默认是开放这些接口提供调用的,那么就问题来了,如果这些接口公开在外网中,很容易被不法分子所利用,这肯定不是我们想要的结果.在这里我们提供一种比较好的解决方案. 被监控的服务配置 为被保护的http请求添加请求前缀 management: context-path: /example-context eureka: instance: stat

  • spring boot admin 搭建详解

    1. Spring Boot Admin 定义 Spring Boot Admin 是针对 Spring Boot 的actuator接口进行UI美化的接口,可以方便的浏览被监控的Spring Boot项目的基本信息.详细的Health信息.JVM信息.垃圾回收信息.各种配置信息(数据源.缓存.命中率等) 2 系统搭建 server 端搭建 1.gradle中引入一下依赖 compile('de.codecentric:spring-boot-admin-server:1.5.6') compi

  • SpringBoot Admin 使用指南(推荐)

    Spring Boot Admin 是一个管理和监控你的 Spring Boot 应用程序的应用程序. 这些应用程序通过 Spring Boot Admin Client(通过 HTTP)注册或者使用 Spring Cloud(例如 Eureka)发现. UI只是 Spring Boot Actuator 端点上的一个 AngularJs 应用程序. 快速开始 首先在 IDEA 创建一个 SpringBoot 项目,把它当作 server 端,工程如下: 然后在 pom.xml 中引入依赖: <

  • Spring Boot Admin(监控工具)的使用

    前面的文章我们讲了Spring Boot的Actuator.但是Spring Boot Actuator只是提供了一个个的接口,需要我们自行集成到监控程序中.今天我们将会讲解一个优秀的监控工具Spring Boot Admin. 它采用图形化的界面,让我们的Spring Boot管理更加简单. 先上图给大家看一下Spring Boot Admin的界面: 从界面上面我们可以看到Spring Boot Admin提供了众多强大的监控功能.那么开始我们的学习吧. 配置Admin Server 既然是

  • Spring Boot Admin 的使用详解

    一.前言 Spring Boot Admin 用于监控基于 Spring Boot 的应用.官方文档在这里(v1.3.4):<Spring Boot Admin Reference Guide> 实践的过程中,感觉这个 User Guide 结构上还是说的不太明白.所以我就大概写一遍我的实践过程与理解. 阅读此文前提条件是: 使用过 Maven. 你跑过基于 Spring Boot 的 hello world 程序. 第三节需要你会点 Spring Cloud 的 Eureka Server

  • Spring Boot Admin 快速入门详解

    目录 1.介绍 2.服务端搭建 2.1 引入依赖 2.2 添加注解 2.3 进行测试 2.4 测试结果 3.客户端搭建 3.1 引入依赖 3.2 编写配置 3.3 进行测试 4.安全性 4.1 添加依赖 4.2 编写配置 4.3 编写配置类 4.4 修改客户端配置 4.5 进行测试 总结 1.介绍 官网地址 Spring Boot Admin 是开源社区孵化的项目,用于对 Spring Boot 应用的管理和监控.Spring Boot Admin 分为服务端(spring-boot-admin

  • Spring Boot Admin的使用详解(Actuator监控接口)

    第一部分 Spring Boot Admin 简介 Spring Boot Admin用来管理和监控Spring Boot应用程序. 应用程序向我们的Spring Boot Admin Client注册(通过HTTP)或使用SpringCloud®(例如Eureka,Consul)发现. UI是Spring Boot Actuator端点上的Vue.js应用程序. Spring Boot Admin 是一个管理和监控Spring Boot 应用程序的开源软件.每个应用都认为是一个客户端,通过HT

  • Spring Boot 集成MyBatis 教程详解

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. 在集成MyBatis前,我们先配置一个druid数据源. Spring Boot 系列 1.Spring Boot 入门 2.Spring Boot 属性配置

  • Spring Security 在 Spring Boot 中的使用详解【集中式】

    1.1 准备 1.1.1 创建 Spring Boot 项目   创建好一个空的 Spring Boot 项目之后,写一个 controller 验证此时是可以直接访问到该控制器的. 1.1.2 引入 Spring Security   在 Spring Boot 中引入 Spring Security 是相当简单的,可以在用脚手架创建项目的时候勾选,也可以创建完毕后在 pom 文件中加入相关依赖. <dependency> <groupId>org.springframework

  • Java Spring Boot消息服务万字详解分析

    目录 消息服务概述 为什么要使用消息服务 异步处理 应用解耦 流量削峰 分布式事务管理 常用消息中间件介绍 ActiveMQ RabbitMQ RocketMQ RabbitMQ消息中间件 RabbitMQ简介 RabbitMQ工作模式介绍 Work queues(工作队列模式) Public/Subscribe(发布订阅模式) Routing(路由模式) Topics(通配符模式) RPC Headers RabbitMQ安装以及整合环境搭建 安装RabbitMQ 下载RabbitMQ 安装R

  • Spring boot 使用mysql实例详解

    Spring boot 使用mysql实例详解 开发阶段用 H2即可,上线时,通过以下配置切换到mysql,spring boot将使用这个配置覆盖默认的H2. 1.建立数据库: mysql -u root CREATE DATABASE springbootdb 2.pom.xml: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId&g

  • Dubbo在Spring和Spring Boot中的使用详解

    一.在Spring中使用Dubbo 1.Maven依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3.6</version> <exclusions> <exclusion> <groupId>log4j</groupId> <artif

  • spring boot linux启动方式详解

    前台启动 java -jar XXX.jar 后台启动 java -jar xxx.jar & 区别:前台启动ctrl+c就会关闭程序,后台启动ctrl+c不会关闭程序 制定控制台的标准输出 java -jar xxx.jar > catalina.out 2>&1 & catalina.out将标准输出指向制定文件catalina.out 2>&1 输出所有的日志文件 & 后台启动  脚本启动 #!/bin/sh #功能简介:启动上层目录下的ja

  • 在Linux系统上安装Spring boot应用的教程详解

    Unix/Linux 服务 systemd 服务 操作过程 1. 安装了JDK的centOS7虚拟机 注意下载linux版本JDK的时候不能直接通过wget这种直接链接下载,否则会解压不成功,应该打开原官网,点击同意许可后点击下载(这种方式下载很慢),比较好的方式是复制下载页的地址到迅雷,通过迅雷打开该下载页,同意许可后点击下载. 下载后解压.配置环境变量 tar -zxvf jdk1.8.0_211.jar.gz 环境变量配置:/etc/profile 文件最后添加如下 export JAVA

随机推荐