使用 Spring Boot Admin 监控微服务-spring cloud 入门教程

Spring Boot Admin 是一个出色的工具,用于可视化 Spring Boot Actuator 公开的端点,并带有健康检查和应用程序详细信息。它可以轻松地与 Spring Cloud 集成,并且可以按其可以从 Eureka(或其他一些注册和发现服务器)注册表中获取的名称对所有正在运行的微服务实例进行分组。

如果您必须管理由多个微服务组成的系统,则需要在统一地方收集所有相关信息的强烈需求。这适用于我们通常使用 ELK 堆栈(Elasticsearch + Logstash + Kibana)时采集日志、追踪指标(Zipkin)以及有关当前正在运行的所有应用程序实例的状态的详细信息。如果您对有关 ELK 或 Zipkin 的更多详细信息感兴趣,我推荐我之前的文章微服务集成SPRING CLOUD SLEUTH、ELK 和 ZIPKIN 进行监控-spring cloud 入门教程

如果您正在使用 Spring Cloud Discovery,我有好消息要告诉您。虽然 Spring Boot Admin 是由 Codecentric 公司创建的,但它与 Spring Cloud 完全集成。它包括最流行的服务注册和发现服务器,如 Zookeeper、Consul 和 Eureka。创建管理服务器实例很容易。您只需要设置 Spring Boot 应用程序并将注释添加@EnableAdminServer到主类中。

@SpringBootApplication
@EnableDiscoveryClient
@EnableAdminServer
@EnableAutoConfiguration
public class Application {

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

}

在 GitHub 上照常提供的示例应用程序中,我们通过添加 annotation 启用了 Eureka 的发现@EnableDiscoveryClient在 Eureka 中不需要注册 admin 服务,因为我们只需要收集所有注册微服务的信息。也可以将 Spring Boot Admin 包含到您的 Eureka 服务器实例中,但应更改管理上下文(属性spring.boot.admin.context-path)以防止与 Eureka UI 发生冲突。这是application.yml具有独立管理服务的示例配置文件。

eureka:
  client:
    registryFetchIntervalSeconds: 5
    registerWithEureka: false
    serviceUrl:
      defaultZone: ${DISCOVERY_URL:http://localhost:8761}/eureka/
  instance:
    leaseRenewalIntervalInSeconds: 10

management:
  security:
    enabled: false

这是包含在pom.xml.

<dependencies>
   <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-eureka</artifactId>
   </dependency>
   <dependency>
      <groupId>de.codecentric</groupId>
      <artifactId>spring-boot-admin-server</artifactId>
      <version>1.5.1</version>
   </dependency>
   <dependency>
      <groupId>de.codecentric</groupId>
      <artifactId>spring-boot-admin-server-ui</artifactId>
      <version>1.5.1</version>
   </dependency>
</dependencies>

现在您只需要使用java -jar admin-service.jarUI 仪表板在http://localhost:8080下可用,如下图所示。服务按名称分组,并提供有关每个微服务正在运行的实例数量的信息。

在客户端,我们必须在下面添加这两个依赖项。如前所述,需要 Spring Boot Actuator,Jolokia 库用于更高级的功能,如 JMX MBeans 和日志级别管理。

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
   <groupId>org.jolokia</groupId>
   <artifactId>jolokia-core</artifactId>
</dependency>

要显示下图中可见的信息,例如版本、下面的 Git 提交详细信息,我们需要为每个应用程序添加两个 Maven 插件到 .gitignore 中pom.xml他们首先将生成build-info.properties包含最重要的应用程序信息的文件。第二个包含包含git.properties有关上次提交的所有信息的文件。结果在 Spring Boot Actuatorinfo端点下可用

<plugin>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-maven-plugin</artifactId>
   <configuration>
      <mainClass>com.microservices.account.Application</mainClass>
      <addResources>true</addResources>
   </configuration>
   <executions>
      <execution>
         <goals>
            <goal>build-info</goal>
            <goal>repackage</goal>
         </goals>
         <configuration>
            <additionalProperties>
            <java.target>${maven.compiler.target}</java.target>
            <time>${maven.build.timestamp}</time>
            </additionalProperties>
         </configuration>
      </execution>
   </executions>
</plugin>

我在示例应用程序account-servicecustomer-service使用命令在不同端口上运行它们的一些实例java -jar -DPORT=[port] [service-name].jar版本信息列中可见的信息取自build-info.propertiesgit.properties文件。

这是 的完整参数列表account-service

Spring Boot Admin 还提供了一些其他有趣的功能。Trace部分,我们可以浏览带有日期、状态和方法信息的 HTTP 请求和响应历史记录。它可以通过路径片段过滤。

通过添加 Jolokia 依赖项,我们能够查看和更改日志记录部分中每个类别的日志级别

我们可以为每个微服务实例收集配置详细信息。

Journal选项卡中,有一个由 Spring Boot Admin 监控的所有服务的状态更改列表。

使用 Zuul、Ribbon、Feign、Eureka 和 Sleuth、Zipkin 创建简单spring cloud微服务用例-spring cloud 入门教程
微服务集成SPRING CLOUD SLEUTH、ELK 和 ZIPKIN 进行监控-spring cloud 入门教程
使用Hystrix 、Feign 和 Ribbon构建微服务-spring cloud 入门教程

使用 Spring Boot Admin 监控微服务-spring cloud 入门教程

基于Redis做Spring Cloud Gateway 中的速率限制实践-spring cloud 入门教程
集成SWAGGER2服务-spring cloud 入门教程
Hystrix 简介-spring cloud 入门教程
Hystrix 原理深入分析-spring cloud 入门教程 
使用Apache Camel构建微服务-spring cloud 入门教程
集成 Kubernetes 来构建微服务-spring cloud 入门教程
集成SPRINGDOC OPENAPI 的微服务实践-spring cloud 入门教程
SPRING CLOUD 微服务快速指南-spring cloud 入门教程
基于GraphQL的微服务实践-spring cloud 入门教程
最火的Spring Cloud Gateway 为经过身份验证的用户启用速率限制实践-spring cloud 入门教程

 

原文地址:https://www.cnblogs.com/BlogNetSpace/p/15149617.html