`
Swifie
  • 浏览: 10693 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

Spring Boot: Spring Boot Admin 监控 Spring Boot 应用

 
阅读更多

 

Spring Boot (十): Spring Boot Admin 监控 Spring Boot 应用
 

 

1. 引言

基于 Spring Boot Actuator 的服务监控, Spring Boot Actuator 提供了对单个 Spring Boot 的监控,信息包含:应用状态、内存、线程、堆栈等等,比较全面的监控了 Spring Boot 应用的整个生命周期。但是, Spring Boot Actuator 只为我们提供了监控的数据接口,而且返回的数据量非常的大,我们不可能通过人工肉眼的方式去分析这些返回的数据,肯定是希望能有一个图形化的界面帮助我们去分析这些信息,同时,在微服务的体系中,我们的服务数量是非常多的,这同样不方便我们人工管理,在这样的背景下,诞生了另一个开源软件,也是本篇文章要介绍的: Spring Boot Admin 。

2. Spring Boot Admin 简介

Spring Boot Admin 是一个 Web 应用,用于管理和监视 Spring Boot 应用程序的运行状态。每个 Spring Boot 应用程序都被视为客户端并注册到管理服务器。背后的数据采集是由 Spring Boot Actuator 端点提供。前端 Spring Boot Admin UI 展示使用 VueJs 将数据展示在前端。

本文将介绍如何使用 Spring Boot Admin 对 Spring Boot 进行监控。

3. 工程实战

3.1 创建父工程 spring-boot-admin

依赖文件 pom.xml 如下:

代码清单:spring-boot-admin/pom.xml

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring-cloud.version>Greenwich.SR3</spring-cloud.version>
    <spring-boot-admin.version>2.1.5</spring-boot-admin.version>
</properties>

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

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-dependencies</artifactId>
            <version>${spring-boot-admin.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

 

  • 在 <dependencyManagement> 中增加 spring-boot-admin-dependencies 的版本配置,因为 spring-boot-admin 有关的版本信息未集成在 spring-boot-dependencies 中,咱也不知道为啥,咱也不敢问。

3.2 创建子工程 spring-boot-admin-server

Spring Boot Admin 可以用作单台服务的监控,也可用于集群的监控,我们先介绍单台服务的监控配置。

pom.xml 配置文件如下:

代码清单:spring-boot-admin/spring-boot-admin-server/pom.xml

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

 注意: 如果只是单台服务使用,只需引入 spring-boot-admin-starter-server 的依赖即可, spring-cloud-starter-netflix-eureka-client 此依赖是 Spring Boot Admin 基于 Eureka 服务中心会使用到的依赖。

配置文件 application.yml 如下:

代码清单:spring-boot-admin/spring-boot-admin-server/src/main/resources/application.yml

server:
  port: 8888
spring:
  application:
    name: spring-boot-admin-server
eureka:
  instance:
    leaseRenewalIntervalInSeconds: 10
    health-check-url-path: /actuator/health
  client:
    registryFetchIntervalSeconds: 5
    serviceUrl:
      defaultZone: ${EUREKA_SERVICE_URL:http://localhost:8761}/eureka/
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: ALWAYS

 注意: 单机版本无需配置其中的 eureka.***.*** 等相关内容。

启动主类 SpringBootAdminServerApplication.java 如下:

代码清单:spring-boot-admin/spring-boot-admin-server/src/main/java/com/springboot/springbootadminserver/SpringBootAdminServerApplication.java

@SpringBootApplication
@EnableAdminServer
@EnableEurekaClient
public class SpringBootAdminServerApplication {

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

}

 注意: 单机版本无需添加 @EnableEurekaClient 注解。

3.3 创建子工程 spring-boot-admin-clienta

此工程为 Spring Boot Admin 单机版演示用例。

pom.xml 如下:spring-boot-admin/spring-boot-admin-clienta/pom.xml

代码清单:

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>

 

  • 此工程仅需引入 spring-boot-admin-starter-client Spring Boot Admin 的客户端即可。

配置文件 application.yml 如下:

代码清单:spring-boot-admin/spring-boot-admin-clienta/src/main/resources/application.yml

server:
  port: 9090
spring:
  application:
    name: spring-boot-clienta
  boot:
    admin:
      client:
        url: http://localhost:8888
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: ALWAYS

 

  • spring.application.name 配置的名称会在 Spring Boot Admin 的 UI 界面中显示出来。
  • spring.boot.admin.client.url 配置的是我们 Spring Boot Admin 服务端的地址。
  • management.endpoints.web.exposure.include 开启 Spring Boot Actuator 的全部监控。
  • management.endpoint.health.show-details 开启 Spring Boot Actuator 监控的应用的详细的应用健康信息。

启动 spring-boot-admin-server 工程和 spring-boot-admin-clienta ,稍等一会, spring-boot-admin-clienta 会自动注册到 spring-boot-admin-server 上面去。

打开浏览器访问 http://localhost:8888/ ,这时我们可以看到 Spring Boot Admin 监控图,如下:

 

Spring Boot (十): Spring Boot Admin 监控 Spring Boot 应用
 

 

点击后会进入该应用的详细信息,我们可以看到 Spring Boot Admin 使用图形化的界面展示了该应用的各种信息,如下:

 

Spring Boot (十): Spring Boot Admin 监控 Spring Boot 应用
 

 

3.4 创建子工程 spring-boot-admin-client

此工程示例为微服务版本的 Spring Boot Admin 使用示例,其中使用服务中心 Eureka 注册服务, Spring Boot Admin 会从服务中心 Eureka 上读取相关的信息,进行服务监控。这样我们就不需要在客户端再配置 Spring Boot Admin 的服务地址,后续如果 Spring Boot Admin 服务发生地址迁移等事情时,也无需修改客户端的配置文件。

 

工程依赖 pom.xml 如下:

代码清单:spring-boot-admin/spring-boot-admin-client/pom.xml

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

 

  • 这里仅添加 Spring Boot Admin 的客户端和 Spring Cloud Eureka 的客户端依赖。

配置文件 application.yml 如下:

代码清单:spring-boot-admin/spring-boot-admin-client/src/main/resources/application.yml

server:
  port: 8080
spring:
  application:
    name: spring-boot-admin-client
eureka:
  instance:
    leaseRenewalIntervalInSeconds: 10
    health-check-url-path: /actuator/health
  client:
    registryFetchIntervalSeconds: 5
    serviceUrl:
      defaultZone: ${EUREKA_SERVICE_URL:http://localhost:8761}/eureka/
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: ALWAYS

 

  • 对比前面单机版的配置,这里去掉了 Spring Boot Admin 服务地址的配置,增加了 Eureka 服务中心的配置。

启动主类 SpringBootAdminClientApplication.java 如下:

代码清单:

@SpringBootApplication
@EnableEurekaClient
public class SpringBootAdminClientApplication {

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

}

 

  • @EnableEurekaClient 含义为启用 Eureka 客户端,实测虽然这里不写也一样会启用,但是最好还是写一下吧:)

测试:

修改编辑器 idea 配置,在两个不同的端口启动子工程 spring-boot-admin-client ,打开 Spring Boot Admin 的 UI 界面,显示如下:

 

Spring Boot (十): Spring Boot Admin 监控 Spring Boot 应用
 

 

 

Spring Boot (十): Spring Boot Admin 监控 Spring Boot 应用
 

 

可以看到,这里显示了两个应用( APPLICATIONS ),一个是我们的 spring-boot-admin-server 本身的监控,还有一个是我们的 spring-boot-admin-client 应用,且该应用有两个实例( INSTANCES ),分别位于两个不同的端口 8080 和 8081 。点进去一样可以看到对应的实例的详情。

分享到:
评论

相关推荐

    12Spring Boot Admin:微服务应用监控1

    Spring Boot Admin 微服务应用监控 Spring Boot Admin 是一个基于 Spring Boot 的应用监控工具,可以对 Spring Boot 应用进行监控,提供了详细的应用信息,包括应用运行过程中的概览信息、度量指标信息、环境变量...

    最新Spring Boot Admin 官方参考指南-中文版-2.x

    Spring Boot Admin 是一个社区驱动的项目,用于监控和管理基于Spring Boot的应用程序。它通过HTTP接口或者Spring Cloud的服务注册中心(如Eureka、Consul)来注册和发现应用。Spring Boot Admin的用户界面是一个建立...

    spring boot admin demo 源码 java 服务器 监控

    Spring Boot Admin 是一个用于监控 Spring Boot 应用的优秀框架,它提供了丰富的界面展示,能够帮助开发者实时了解应用的运行状态、健康检查、日志输出等关键信息。本项目是基于 Spring Boot Admin 的一个演示(Demo...

    Spring cloud spring boot spring boot admin

    2. **Spring Boot Admin Client**:每个被监控的Spring Boot应用需要添加`spring-boot-starter-admin-client`依赖,以便将自身注册到Spring Boot Admin Server,并暴露必要的监控端点。 3. **配置**:在服务器和...

    Spring boot 示例 官方 Demo

    spring-boot-rabbitmq:spring boot和rabbitmq各种消息应用案例 spring-boot-scheduler:spring boot和定时任务案例 spring-boot-web:web开发综合使用案例 spring-boot-mail:spring boot和邮件服务 spring-boot-...

    spring boot admin server

    综上所述,Spring Boot Admin Server是一个强大的监控工具,通过集成Spring Boot Admin Client,我们可以实现对Spring Boot应用的全面监控,从而提高系统的稳定性和可维护性。同时,深入源码学习能够帮助我们更好地...

    youlai-boot: Spring Boot 3 + Spring Security + Vue3 权限管理系统

    youlai-boot 是【有来开源组织】基于...1. Spring Boot 3.0 + Vue3 前后端分离单体应用,适合快速开发; 2. Spring Security + JWT 认证鉴权方案; 3. 基于 RBAC 模型的权限设计,细粒度接口方法、按钮级别权限控制。

    10spring boot admin 监控1

    Spring Boot Admin 是一款专为 Spring Boot 设计的管理和监控解决方案,它允许开发者实时查看和管理他们的应用程序状态。这款工具利用了 Spring Boot Actuator 提供的端点,Actuator 是 Spring Boot 的一部分,提供...

    spring-boot-admin-server-ui-2.5.2-API文档-中文版 (1).zip

    赠送jar包:spring-boot-admin-server-ui-2.5.2.jar; 赠送原API文档:spring-boot-admin-server-ui-2.5.2-javadoc.jar; 赠送源代码:spring-boot-admin-server-ui-2.5.2-sources.jar; 赠送Maven依赖信息文件:...

    Spring-Boot-Demo

    本文将深入探讨如何在Spring Boot项目中整合Mybatis,并利用Druid数据库连接池进行性能监控。 首先,我们要理解Spring Boot的核心理念——约定优于配置。在Spring Boot项目中,我们不再需要手动编写大量的XML配置...

    spring boot admin3.1.x客户端

    Spring Boot Admin是一款强大的用于监控Spring Boot应用程序的工具,它提供了丰富的UI界面,使得开发者能够方便地查看应用的状态、日志、环境变量等信息。在3.1.x版本中,Spring Boot Admin进一步增强了其功能,特别...

    Spring Boot 2精髓带书签目录高清版.pdf

    - 可以集成Spring Boot Admin实现更全面的应用监控。 6. **安全**: - 使用Spring Security进行身份验证和授权,Spring Boot提供了开箱即用的安全配置。 - OAuth2整合,支持与第三方认证服务如Google、Facebook...

    spring-boot

    - 初识Spring Boot:了解Spring Boot的宗旨和基本概念,学习如何快速搭建一个Spring Boot项目。 - 系统要求:熟悉Spring Boot应用的系统要求,包括Java版本、Servlet容器等。 - 安装Spring Boot:学习如何通过...

Global site tag (gtag.js) - Google Analytics