首页 > 其他分享 >Spring Boot Admin服务监控

Spring Boot Admin服务监控

时间:2025-01-19 13:01:20浏览次数:3  
标签:Admin Spring boot springframework admin Boot spring org

目录

AdminServer

AdminClient

添加认证

Spring Boot Admin监控Spring Cloud服务结合Eureka注册中心


Spring Boot Admin是一个用于管理和监控Spring Boot应用程序的工具。它通过Spring Boot Admin Client通过HTTP注册,或者使用Spring Cloud如Eureka进行服务发现。其用户界面是一个基于AngularJs的Web应用,构建在Spring Boot Actuator端点之上,提供了一个简洁的可视化界面来管理Spring Boot应用程序,对Actuator暴露的管理端点进行格式化和展示。

AdminServer

创建工程AdminServer,添加依赖:

        <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>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

修改配置文件:

server:
  port: 7013
spring:
  application:
    name: AdminServer

启动类添加@EnableAdminServer注解,启动就行了

AdminClient

创建工程AdminClient,添加依赖:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

修改配置文件:

server:
  port: 7014
spring:
  application:
    name: AdminClient
  boot:
    admin:
      client:
        url: http://127.0.0.1:7013
        instance:
          prefer-ip: true
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always

启动项目,访问http://127.0.0.1:7013/applications,出现如下界面:

添加认证

给AdminServer添加认证,添加依赖:

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

修改配置文件:

server:
  port: 7013
spring:
  application:
    name: AdminServer
  security:
    user:
      name: admin
      password: public

修改启动类:

import de.codecentric.boot.admin.server.config.AdminServerProperties;
import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
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;
import org.springframework.security.web.csrf.CookieCsrfTokenRepository;

@EnableAdminServer
@SpringBootApplication
public class AdminServerApplication {

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

    @Configuration
    public static class SecurityConfig extends WebSecurityConfigurerAdapter {
        private final String adminContextPath;

        public SecurityConfig(AdminServerProperties adminServerProperties) {
            this.adminContextPath = adminServerProperties.getContextPath();
        }

        @Override
        protected void configure(HttpSecurity http) throws Exception {
            // @formatter:off
            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()
                    .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
                    .ignoringAntMatchers(
                            adminContextPath + "/instances",
                            adminContextPath + "/actuator/**"
                    );
            // @formatter:on
        }
    }

}

修改AdminClient:

server:
  port: 7014
spring:
  application:
    name: AdminClient
  boot:
    admin:
      client:
        url: http://127.0.0.1:7013
        instance:
          prefer-ip: true
        username: admin
        password: public
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always

这是监控界面需要认证才能进入:

Spring Boot Admin监控Spring Cloud服务结合Eureka注册中心

 当我们监控微服务的时候,服务数量众多,我们肯定想统一管理微服务,我可以将服务全部注册到注册中心上,admin会自己拉取Eureka上注册的应用信息,主动去注册。这也是唯一区别之前手动注册(SBA连接方式)的地方,就是client端不需要admin-client的依赖,也不需要配置admin地址了,一切全部由admin-server自己实现。这样的设计对环境变化很友好,不用改了admin-server后去改所有应用的配置了。

给AdminServer和AdminClient添加依赖:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

启动类加@EnableEurekaClient注解

AdminClient配置文件添加:

eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:7001/eureka
  instance:
    lease-renewal-interval-in-seconds: 1    #间隔1s,向服务端发送一次心跳,证明自己依然“存活”
    lease-expiration-duration-in-seconds: 2    # 告诉服务端,如果我2s之内没有给你发心跳,就代表我“死”了,请将我踢掉

AdminClient配置文件添加:

eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:7001/eureka
  instance:
    lease-renewal-interval-in-seconds: 1    #间隔1s,向服务端发送一次心跳,证明自己依然“存活”
    lease-expiration-duration-in-seconds: 2    # 告诉服务端,如果我2s之内没有给你发心跳,就代表我“死”了,请将我踢掉
    metadata-map:
      user.name: ${spring.security.user.name}
      user.password: ${spring.security.user.password}
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always

启动三个工程,可以看到监控界面可以监控AdminServer本身,还能选择监控的项目:

标签:Admin,Spring,boot,springframework,admin,Boot,spring,org
From: https://blog.csdn.net/weixin_55987175/article/details/145227786

相关文章

  • SpringBoot体育场馆在线预约系统ig5br(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,场地类别,场地信息,场地预约,取消预约,统计数据开题报告内容一、研究背景与意义随着人们健康意识的增强,体育锻炼已成为现代人日常生活的重要组成部分。体......
  • 计算机毕业设计Springboot基于的影视评论网站的设计与实现 基于Spring Boot框架的影视
    计算机毕业设计Springboot基于的影视评论网站的设计与实现58py6238(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着互联网的飞速发展,影视评论网站已成为观众获取影视信息、分享观影感受的重要平台。它不仅汇聚了海量的影视资料,......
  • 计算机毕业设计Springboot基于的游戏后台管理系统 基于Springboot的游戏后台运营管理
    计算机毕业设计Springboot基于的游戏后台管理系统a803t(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着游戏产业的蓬勃发展,游戏公司面临着海量用户数据、复杂的游戏内容以及多样化的运营活动管理挑战。传统的后台管理方式因人工......
  • springboot+vue高校年终考核材料归档平台研究与设计 64x25
    目录系统实现截图开发核心技术介绍技术栈核心代码部分展示操作手册视频演示/源码获取系统实现截图开发核心技术介绍springboot+Element-UI+vue本系统采用MVVM模式,开发框架使用SpringBoot框架,开发工具使用IDEA,VisualStudioCode,Web服务器使用Tomcat,数据库服务......
  • 计算机毕业设计Springboot房屋租赁管理系统 基于SpringBoot的住宅租赁平台开发 Spring
    计算机毕业设计Springboot房屋租赁管理系统v26r4k2k(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着城市化进程的加速,房屋租赁市场日益繁荣,但同时也面临着诸多管理难题,如信息不对称、流程繁琐等。为了提升租赁市场的运营效率和......
  • 计算机毕业设计Springboot超市进销存管理系统 基于Springboot的超市库存与销售管理系
    计算机毕业设计Springboot超市进销存管理系统r1401773(配套有源码程序mysql数据库论文)本套源码可以先看具体功能演示视频领取,文末有联xi可分享随着社会经济的快速发展和人民生活水平的提高,超市作为零售业的主要业态,其规模和业务范围不断扩大。传统的超市进销存管理模式已......
  • 基于java+springboot的搞笑视频分享浏览小程序
    课题说明以下是基于Java+SpringBoot的搞笑视频分享浏览小程序的介绍:这个小程序利用Java语言和SpringBoot框架开发,为用户打造了一个轻松有趣的搞笑视频分享和浏览平台。用户可以在平台上上传各种搞笑视频,系统会对视频进行存储和管理,包括对视频的分类(如短剧、段......
  • 基于Spring Boot的微信小程序个人运动健康管理平台
    一、项目背景与意义随着人们生活水平的提高和健康意识的增强,越来越多的人开始关注自己的运动健康状况。然而,传统的运动管理方式存在诸多不便,如记录不准确、计划不合理、缺乏专业指导等。因此,开发一个基于SpringBoot的微信小程序个人运动健康管理平台,能够打破传统运动管理......
  • 【CAS】CAS 接入配置中心SpringCloud Config(三)
    环境准备准备一个SpringCloud Config配置中心,参考:【SpringCloud】SpringCloudConfig配置中心(二十)-H__D-博客园步骤1、启动Config服务,并在Config服务器中,新增cas-server.properties文件文件内容,我就修改了端口server.context-path=/casserver.port=8442......
  • 集成工作流的后台管理系统,springboot集成activiti,Java集成工作流审批流,vue后台管理系
     前言这是一套集成了工作流的后台管理系统,工作流做到了在线流程图设计,发布,绑定业务表单进行流程流转,整个流程的控制,审批,会签,驳回,挂起等。后台管理的功能有:系统管理,表单设计,工作台等。拿过去你可以做什么:可以直接在上面进行业务的开发,比如可以直接做请假申请,报销申请单等。......