admin管理员组文章数量:1032808
使用 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
到主类中。
@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.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
端点下可用。
<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-service
和customer-service
. 使用命令在不同端口上运行它们的一些实例java -jar -DPORT=[port] [service-name].jar
。版本和信息列中可见的信息取自build-info.properties
和git.properties
文件。
这是 的完整参数列表account-service
。
Spring Boot Admin 还提供了一些其他有趣的功能。在Trace部分,我们可以浏览带有日期、状态和方法信息的 HTTP 请求和响应历史记录。它可以通过路径片段过滤。
通过添加 Jolokia 依赖项,我们能够查看和更改日志记录部分中每个类别的日志级别。
我们可以为每个微服务实例收集配置详细信息。
在Journal选项卡中,有一个由 Spring Boot Admin 监控的所有服务的状态更改列表。
使用 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
到主类中。
@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.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
端点下可用。
<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-service
和customer-service
. 使用命令在不同端口上运行它们的一些实例java -jar -DPORT=[port] [service-name].jar
。版本和信息列中可见的信息取自build-info.properties
和git.properties
文件。
这是 的完整参数列表account-service
。
Spring Boot Admin 还提供了一些其他有趣的功能。在Trace部分,我们可以浏览带有日期、状态和方法信息的 HTTP 请求和响应历史记录。它可以通过路径片段过滤。
通过添加 Jolokia 依赖项,我们能够查看和更改日志记录部分中每个类别的日志级别。
我们可以为每个微服务实例收集配置详细信息。
在Journal选项卡中,有一个由 Spring Boot Admin 监控的所有服务的状态更改列表。
本文标签: 使用 Spring Boot Admin 监控微服务
版权声明:本文标题:使用 Spring Boot Admin 监控微服务 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1747926316a2228799.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论