springbootadmin监控搭建-nacos版本(代码片段)

大道坦荡 大道坦荡     2023-04-08     373

关键词:

Spring Boot Admin介绍

Spring Boot Admin 是github上一款用于Spring Boot 的监控管理的开源项目,通过http直接注册或者通过注册中心注册的方式,实现了Spring Boot应用上的一些常见监控项,具体功能点如下:

  • 显示应用程序的监控状态
  • 应用程序上下线监控
  • 查看 JVM,线程信息
  • 可视化的查看日志以及下载日志文件
  • 动态切换日志级别
  • Http 请求信息跟踪
  • 其他监控点

详细监控项可到githup上去查看

地址:https://github.com/codecentric/spring-boot-admin

快速搭建

本文是基于nacos注册中心配置实现,在开始前需要安装好nacos服务端。

搭建服务:

  1. admin-server 监控服务端
  2. admin-client 被监控的客户端

创建Admin-server应用

添加pom依赖:

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <maven.deploy.skip>true</maven.deploy.skip>
    <nacos.version>2.2.4.RELEASE</nacos.version>
    <spring-boot.version>2.2.5.RELEASE</spring-boot.version>
    <spring-boot.admin.version>2.2.2</spring-boot.admin.version>
    <spring-boot-starter-actuator.version>2.2.5.RELEASE</spring-boot-starter-actuator.version>
</properties>

<dependencies>
    <!--监控服务端 -->
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-server</artifactId>
        <version>$spring-boot.admin.version</version>
    </dependency>

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

    <!--nacos注册中心-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>$nacos.version</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
        <version>$spring-boot-starter-actuator.version</version>
    </dependency>
</dependencies>

添加配置

server:
  port: 8012

spring:
  application:
    name: admin-server
  #配置中心
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        service:  $spring.application.name


# 暴露监控端点
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
# 日志      
logging:
  file: /application/applogs/admin.log

启动类增加注解

@EnableAdminServer 注解,开启监控服务端的功能

@EnableAdminServer
@SpringBootApplication
public class AdminServerApp 

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


启动后,我们就可以看到

创建Admin-client应用

添加pom依赖

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <maven.deploy.skip>true</maven.deploy.skip>
        <nacos.version>2.2.4.RELEASE</nacos.version>
        <spring-boot.version>2.2.5.RELEASE</spring-boot.version>
        <spring-boot.admin.version>2.3.0</spring-boot.admin.version>
        <spring-boot-starter-actuator.version>2.2.5.RELEASE</spring-boot-starter-actuator.version>
    </properties>


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

        <!--nacos注册中心-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>$nacos.version</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
            <version>$spring-boot-starter-actuator.version</version>
        </dependency>
    </dependencies>

client是通过nacos向admin注册的,所以只需要开启nacos注册服务和actuator监控点的服务就可以了,

配置文件

server:
  port: 8013

spring:
  application:
    name: admin-client
  #配置中心
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        service:  $spring.application.name


# 暴露监控端点
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always

logging:
  file: /application/applogs/admin.log

启动类

@SpringBootApplication
public class ClientApp 

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

最普通的一个springboot应用,启动之后

至此,监控应用已经搭建完成。

设置登录信息

admin默认启动时随机生成秘钥进行验证登录的,我们添加spring security 提供登录验证

admin-server添加依赖

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

增加配置文件

server:
  port: 8012

spring:
  application:
    name: admin-server
  #配置中心
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        service:  $spring.application.name
        metadata:
          user.name: admin
          user.password: 654321
  security:
    user:
      name: admin
      password:  654321

# 暴露监控端点
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always

logging:
  file: /application/applogs/admin.log

metadata 是向nacos注册时携带用户米密码,以防注册时被权限限制无法获取到数据,增加 security 配置,配置用户名 admin,密码654321

添加拦截配置

@Configuration
public class SecuritySecureConfig extends WebSecurityConfigurerAdapter 

    private final String adminContextPath;

    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", "/css/**", "/js/**", "/image/*").permitAll()
                //其他所有请求需要登录
                .anyRequest().authenticated()
                .and()
                //登录页面配置,用于替换security默认页面
                .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
                //登出页面配置,用于替换security默认页面
                .logout().logoutUrl(adminContextPath + "/logout").and()
                .httpBasic().and()
                .csrf()
                .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
                .ignoringAntMatchers(
                        "/instances",
                        "/actuator/**"
                );
    

然后启动admin-server,输入用户名密码登录


实战:使用springbootadmin实现运维监控平台

...性能数据呢?在这样的背景下,就诞生了另一个开源软件SpringBootAdmin。下面就来介绍什么是SpringBootAdmin以及如何使用SpringBootAdmin搭建完整的运维监控平台。一、什么 查看详情

指标监控神器springbootadmin保姆级教程

SpringBootAdmin基于SpringBootAdmin的开源产品很多,我们选择这个:https://github.com/codecentric/spring-boot-admin1.搭建Admin服务器创建建对应的SpringBoot项目,添加相关依赖<dependency><groupId>de.codecentric</gr 查看详情

springbootadmin,贼好使!

来源|Java中文社群(ID:javacn666)SpringBootAdmin(SBA)是一个开源的社区项目,用于管理和监控SpringBoot应用程序。应用程序可以通过http的方式,或SpringCloud服务发现机制注册到SBA中,然后就可以实现对... 查看详情

使用springbootadmin监控springcloud微服务

本文基于SpringCloud的环境和配置上增加配置信息,而不是从0开始的配置。一、搭建admin服务端1、引入pom<properties><spring-boot-admin-starter-client.version>1.5.6</spring-boot-admin-starter-client.version><spring-boot-admin 查看详情

【微服务】-springbootadmin

参考技术A目录:SpringBootAdmin用于管理和监控一个或者多个SpringBoot应用,SpringBootAdmin分为Server端和Client端,Client通过http向Server端注册,也可以结合SpringCloud的服务注册组件Eureka进行注册。SpringAdmin的监测详细信息有如下:本文的... 查看详情

springboot技术专题「开发实战系列」一起搭建属于自己的springbootadmin的技术要素

SpringBootAdmin的介绍说明SpringBootAdmin是开源社区孵化的项目,用于对SpringBoot应用的管理和监控。SpringBootAdmin分为服务端(spring-boot-admin-server)和客户端(spring-boot-admin-client),服务端和客户端之间采用http通讯方式实现数据交互;单体项... 查看详情

springboot技术专题「开发实战系列」一起搭建属于自己的springbootadmin的技术要素(代码片段)

SpringBootAdmin的介绍说明SpringBootAdmin是开源社区孵化的项目,用于对SpringBoot应用的管理和监控。SpringBootAdmin分为服务端(spring-boot-admin-server)和客户端(spring-boot-admin-client),服务端和客户端之间采用http通讯方式实现数据交互&#... 查看详情

springboot监控-springbootadmin(代码片段)

01:SpringBoot高级–SpringBoot监控02:SpringBoot监控-SpringBootAdmin1.SpringBootAdmin使用游览器地址栏访问SpringBoot的监控信息太繁琐了,所以SpringBootAdmin就诞生了,以UI界面的方式来显示监控信息。SpringBootAdmin说明:SpringBootAdmi... 查看详情

springcloud微服务监控springbootadmin

1.简介SpringBootAdmin是一个管理和监控SpringBoot应用程序的开源软件。SpringBootAdmin分为Server端和Client端,SpringBootAdminUI部分使用AngularJs将数据展示在前端。2.工程架构EurekaServer:服务注册中心,端口为8761。AdminServer:用于对微服务系... 查看详情

springcloud-springbootadmin服务监控(十三)

springcloud笔记推荐文章前言SpringBootAdmin是一个管理和监控你的SpringBoot应用程序的应用程序。这些应用程序通过SpringBootAdminClient(通过HTTP)注册或者使用SpringCloud(例如Eureka)发现。UI只是SpringBootActuator端点上的一个AngularJs应用程... 查看详情

springboot度量指标监控与健康检查和可视化监控应用springbootadmin

...            使用可视化监控应用SpringBootAdmin  使用步骤:    SpringBootAdmin的使用是需要建立服务端和客户端的    服务端:独立的项目,会将收集到的数据在自己的图形界面中展示   查看详情

springbootadmin微服务监控管理

...项目:https://github.com/codecentric/spring-boot-admin功能特性SpringBootAdmin为注册的应用程序提供以下功能:显示健康状况显示详细信息,例如JVM和内存指标mi 查看详情

springbootadmin2实例状态监控详解(代码片段)

其他相关文章:SpringBootAdmin参考指南SpringBootAdmin服务离线、不显示健康信息的问题SpringBootAdmin2@EnableAdminServer的加载SpringBootAdmin2AdminServerAutoConfiguration详解在微服务中集成SpringBootAdmin的主要作用之一就是用来监控服务的实例... 查看详情

springboot2.x搭建springbootadmin2.x

1说明全部配置基于1.8.0_111当前SpringBoot使用2.0.5SpringBootAdmin基于Eureka进行Client发现,Eureka搭建参见SpringBoot2.x搭建EurekaSpringBootAdmin项目文档参见SpringBootAdmin参考文档2创建项目在SpringBoot项目生成器中,输入Group和Artifact,如下配置:3... 查看详情

springbootadmin2.x监控的服务context-path问题

在使用SpringBootAdmin进行监控时,如果被监控的服务没有加context-path的话是不会有任何问题的,一旦服务加了context-path的配置,监控就会失败。下图是正常情况的显示:我们给被监控的服务增加一个context-path:server.servlet.context-path... 查看详情

物联网架构成长之路(30)-springbootadmin微服务webui监控

...要观察各个微服务的运行状态,因此SpringBoot生态提供了SpringBootAdmin这个组件来实现微服务管理WEBUI。但是整体的注册中心还是基于Eureka,只是WebUI是用这个SpringBootAdmin来显示而已。具体的结构如下所示1.Eureka服务  这个没什么... 查看详情

使用springbootadmin监控应用状态(代码片段)

1SpringBootActuatorSpringBootActuator是SpringBoot提供的对应用的自省和监控功能,如健康检查,审计,指标收集,HTTP跟踪等,可以帮助开发和运维人员监控和管理SpringBoot应用。该模块采集应用的内部信息,并暴露... 查看详情

springbootadmin

转SpringBootAdmin的使用 作者杜琪关注2015.12.2517:30*字数1803阅读16569评论21喜欢55上一篇文章中了解了SpringBoot提供的监控接口,例如:/health、/info等等,实际上除了之前提到的信息,还有其他信息业需要监控:当前处于活跃状态的... 查看详情