Spring Boot整合Spring Boot Admin监控

Spring Boot整合Spring Boot Admin监控

新建服务端

新建springboot项目,导入server服务端依赖。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/de.codecentric/spring-boot-admin-starter-server -->
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
    <version>2.2.2</version>
</dependency>

修改全局配置文件。

spring:
  application:
    name: admin-server

server:
  port: 8080

启动服务端,访问http://localhost:8080。来到如下页面,现在当然一个应用也没有。
在这里插入图片描述

新建客户端

新建springboot项目,导入client客户端依赖。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/de.codecentric/spring-boot-admin-starter-client -->
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>2.2.2</version>
</dependency>

修改全局配置文件

spring:
  application:
    name: admin-client
  boot:
    admin:
      client:
        #服务端路径
        url: http://localhost:8080
        #让Spring Boot Admin服务端可以通过网络获取客户端的数据(否则默认会通过主机名去获取)
        instance:
          prefer-ip: true
          service-url: http://localhost:8081

server:
  port: 8081

management:
  #打开actuator的端口
  endpoints:
    web:
      exposure:
        include: "*"
  #总是展示端口状态
  endpoint:
    health:
      show-details: always

启动客户端程序,重新访问服务端的http://localhost:8080。来到如下页面,可以看到已经有一个应用上线了。
在这里插入图片描述
到处看看。
在这里插入图片描述
详情
在这里插入图片描述
日志
在这里插入图片描述
映射
在这里插入图片描述

登录管理

上面的操作没有任何安全性可言,还需加入spring security进行管理。
在服务端导入security包

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

新建security配置类

package com.admin.config;

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.csrf.CookieCsrfTokenRepository;

@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 {
        // 跨域设置,SpringBootAdmin客户端通过instances注册,见InstancesController
        http.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
                .ignoringAntMatchers(adminContextPath + "/instances");
        // 静态资源
        http.authorizeRequests().antMatchers(adminContextPath + "/assets/**").permitAll(); 
        http.authorizeRequests().anyRequest().authenticated(); 

        // 整合admin-server-ui
        http.formLogin().loginPage("/login").permitAll();
        http.logout().logoutUrl("/logout").logoutSuccessUrl("/login");

        // SpringBootAdmin客户端使用basic认证
        http.httpBasic();
    }
}

修改服务端全局配置文件

spring:
  application:
    name: admin-server
  security:
    user:
      name: admin
      password: 123456

修改客户端配置文件

spring:
  application:
    name: admin-client
  boot:
    admin:
      client:
        #服务端路径
        url: http://localhost:8080
        #让Spring Boot Admin服务端可以通过网络获取客户端的数据(否则默认会通过主机名去获取)
        instance:
          prefer-ip: true
          service-url: http://localhost:8081
        #和服务端保持一致
        username: admin
        password: 123456

重启服务端访问http://localhost:8080,自动跳转到登录界面。
在这里插入图片描述
输入设置好的账号密码即可成功登录。

发布了82 篇原创文章 · 获赞 9 · 访问量 6171

猜你喜欢

转载自blog.csdn.net/weixin_43424932/article/details/104638924