使用 Spring Boot Admin 监控微服务

Spring Boot Admin 是一个出色的工具,用于可视化 Spring Boot Actuator 公开的端点,并带有健康检查和应用程序详细信息。它可以轻松地与 Spring Cloud 集成,并且可以按其可以从 Eureka(或其

使用 Spring Boot Admin 监控微服务

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到主类中。

代码语言:javascript代码运行次数:0运行复制
@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具有独立管理服务的示例的配置文件。

代码语言:javascript代码运行次数:0运行复制
eureka:
  client:
    registryFetchIntervalSeconds: 5
    registerWithEureka: false
    serviceUrl:
      defaultZone: ${DISCOVERY_URL:http://localhost:8761}/eureka/
  instance:
    leaseRenewalIntervalInSeconds: 10

management:
  security:
    enabled: false

这是包含在pom.xml.

代码语言:javascript代码运行次数:0运行复制
<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.jar. UI 仪表板在http://localhost:8080下可用,如下图所示。服务按名称分组,并提供有关每个微服务正在运行的实例数量的信息。

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

代码语言:javascript代码运行次数:0运行复制
<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端点下可用。

代码语言:javascript代码运行次数:0运行复制
<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>${mavenpiler.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 监控的所有服务的状态更改列表。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2021-08-16,如有侵权请联系 cloudcommunity@tencent 删除spring微服务bootcloud监控

发布者:admin,转转请注明出处:http://www.yc00.com/web/1747926289a4706242.html

相关推荐

  • 使用 Spring Boot Admin 监控微服务

    Spring Boot Admin 是一个出色的工具,用于可视化 Spring Boot Actuator 公开的端点,并带有健康检查和应用程序详细信息。它可以轻松地与 Spring Cloud 集成,并且可以按其可以从 Eureka(或其

    4小时前
    10

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信