`
哈哈哈558
  • 浏览: 14673 次
社区版块
存档分类
最新评论

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

 
阅读更多
 

 

 

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

 

1. 引言

在微服务的体系中,我们的服务数量是非常多的,这同样不方便我们人工管理,在这样的背景下,诞生了另一个开源软件,也是本篇文章要介绍的: Spring Boot Admin 。

2. Spring Boot Admin 简介

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

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

3. 工程实战

3.1 创建父工程 spring-boot-admin

依赖文件 pom.xml 如下:

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

Java代码  收藏代码
  1. <properties>  
  2.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  3.     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  
  4.     <java.version>1.8</java.version>  
  5.     <spring-cloud.version>Greenwich.SR3</spring-cloud.version>  
  6.     <spring-boot-admin.version>2.1.5</spring-boot-admin.version>  
  7. </properties>  
  8.   
  9. <dependencies>  
  10.     <dependency>  
  11.         <groupId>org.springframework.boot</groupId>  
  12.         <artifactId>spring-boot-starter-web</artifactId>  
  13.     </dependency>  
  14.     <dependency>  
  15.         <groupId>org.springframework.boot</groupId>  
  16.         <artifactId>spring-boot-starter-actuator</artifactId>  
  17.     </dependency>  
  18.   
  19.     <dependency>  
  20.         <groupId>org.springframework.boot</groupId>  
  21.         <artifactId>spring-boot-starter-test</artifactId>  
  22.         <scope>test</scope>  
  23.     </dependency>  
  24. </dependencies>  
  25.   
  26. <dependencyManagement>  
  27.     <dependencies>  
  28.         <dependency>  
  29.             <groupId>org.springframework.cloud</groupId>  
  30.             <artifactId>spring-cloud-dependencies</artifactId>  
  31.             <version>${spring-cloud.version}</version>  
  32.             <type>pom</type>  
  33.             <scope>import</scope>  
  34.         </dependency>  
  35.         <dependency>  
  36.             <groupId>de.codecentric</groupId>  
  37.             <artifactId>spring-boot-admin-dependencies</artifactId>  
  38.             <version>${spring-boot-admin.version}</version>  
  39.             <type>pom</type>  
  40.             <scope>import</scope>  
  41.         </dependency>  
  42.     </dependencies>  
  43. </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

Java代码  收藏代码
  1. <dependency>  
  2.     <groupId>de.codecentric</groupId>  
  3.     <artifactId>spring-boot-admin-starter-server</artifactId>  
  4. </dependency>  
  5. <dependency>  
  6.     <groupId>org.springframework.cloud</groupId>  
  7.     <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>  
  8. </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

Java代码  收藏代码
  1. server:  
  2.   port: 8888  
  3. spring:  
  4.   application:  
  5.     name: spring-boot-admin-server  
  6. eureka:  
  7.   instance:  
  8.     leaseRenewalIntervalInSeconds: 10  
  9.     health-check-url-path: /actuator/health  
  10.   client:  
  11.     registryFetchIntervalSeconds: 5  
  12.     serviceUrl:  
  13.       defaultZone: ${EUREKA_SERVICE_URL:http://localhost:8761}/eureka/  
  14. management:  
  15.   endpoints:  
  16.     web:  
  17.       exposure:  
  18.         include: "*"  
  19.   endpoint:  
  20.     health:  
  21.       show-details: ALWAYS  

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

启动主类 SpringBootAdminServerApplication.java 如下:

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

Java代码  收藏代码
  1. @SpringBootApplication  
  2. @EnableAdminServer  
  3. @EnableEurekaClient  
  4. public class SpringBootAdminServerApplication {  
  5.   
  6.     public static void main(String[] args) {  
  7.         SpringApplication.run(SpringBootAdminServerApplication.class, args);  
  8.     }  
  9.   
  10. }  

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

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

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

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

代码清单:

Java代码  收藏代码
  1. <dependency>  
  2.     <groupId>de.codecentric</groupId>  
  3.     <artifactId>spring-boot-admin-starter-client</artifactId>  
  4. </dependency>  

 

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

配置文件 application.yml 如下:

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

Java代码  收藏代码
  1. server:  
  2.   port: 9090  
  3. spring:  
  4.   application:  
  5.     name: spring-boot-clienta  
  6.   boot:  
  7.     admin:  
  8.       client:  
  9.         url: http://localhost:8888  
  10. management:  
  11.   endpoints:  
  12.     web:  
  13.       exposure:  
  14.         include: "*"  
  15.   endpoint:  
  16.     health:  
  17.       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 服务发生地址迁移等事情时,也无需修改客户端的配置文件。

Eureka 代码示例这里不再列出,如果有需要补课的同学,可以访问笔者的 《Spring Cloud 系列文章》 。

工程依赖 pom.xml 如下:

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

Java代码  收藏代码
  1. <dependency>  
  2.     <groupId>de.codecentric</groupId>  
  3.     <artifactId>spring-boot-admin-starter-client</artifactId>  
  4. </dependency>  
  5. <dependency>  
  6.     <groupId>org.springframework.cloud</groupId>  
  7.     <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>  
  8. </dependency>  

 

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

配置文件 application.yml 如下:

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

Java代码  收藏代码
  1. server:  
  2.   port: 8080  
  3. spring:  
  4.   application:  
  5.     name: spring-boot-admin-client  
  6. eureka:  
  7.   instance:  
  8.     leaseRenewalIntervalInSeconds: 10  
  9.     health-check-url-path: /actuator/health  
  10.   client:  
  11.     registryFetchIntervalSeconds: 5  
  12.     serviceUrl:  
  13.       defaultZone: ${EUREKA_SERVICE_URL:http://localhost:8761}/eureka/  
  14. management:  
  15.   endpoints:  
  16.     web:  
  17.       exposure:  
  18.         include: "*"  
  19.   endpoint:  
  20.     health:  
  21.       show-details: ALWAYS  

 

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

启动主类 SpringBootAdminClientApplication.java 如下:

代码清单:

Java代码  收藏代码
  1. @SpringBootApplication  
  2. @EnableEurekaClient  
  3. public class SpringBootAdminClientApplication {  
  4.   
  5.     public static void main(String[] args) {  
  6.         SpringApplication.run(SpringBootAdminClientApplication.class, args);  
  7.     }  
  8.   
  9. }  

 

  • @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