Skip to content

使用 Admin Server 监控系统

在 Spring Boot 中,使用 Actuator 和 Admin Server 可以非常方便地监控和管理你的应用。

Actuator 提供了许多端点(Endpoints),这些端点可以提供应用的健康检查、指标、日志级别、线程信息等。

Admin Server 则是一个独立的应用,它集中管理多个使用 Actuator 的应用。

1. 添加依赖

首先,在你的 Spring Boot 项目中添加 Actuator 依赖:

xml
<!-- 在pom.xml中添加 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

如果使用 Gradle,则添加:

groovy
// 在build.gradle中添加
implementation 'org.springframework.boot:spring-boot-starter-actuator'

2. 配置 Actuator

application.propertiesapplication.yml 文件中配置 Actuator 的端点访问路径和安全性:

properties
# application.properties 示例
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always

或者 YAML 格式:

yaml
# application.yml 示例
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: "always"

3. 启用 Admin Server

创建一个新的 Spring Boot 项目作为 Admin Server,添加以下依赖:

xml
<!-- 在Admin Server的pom.xml中添加 -->
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
    <version>2.6.0</version>
</dependency>

或者使用 Gradle:

groovy
// 在Admin Server的build.gradle中添加
implementation 'de.codecentric:spring-boot-admin-starter-server:2.6.0'

4. 配置 Admin Server

在 Admin Server 的配置文件中,设置需要监控的应用的 URL:

properties
# Admin Server的application.properties示例
spring.boot.admin.client.url=http://localhost:8080/admin
spring.boot.admin.client.instance.service-base-url=http://localhost:8081

这里,http://localhost:8080/admin 是 Admin Server 的地址,而 http://localhost:8081 是被监控应用的地址。

5. 注册应用到 Admin Server

在被监控的应用中,添加 Admin Client 的依赖,并配置客户端:

xml
<!-- 被监控应用的pom.xml中添加 -->
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>2.6.0</version>
</dependency>

然后在配置文件中添加:

properties
# 被监控应用的application.properties示例
spring.boot.admin.client.url=http://localhost:8080/admin

6. 启动应用

最后,分别启动 Admin Server 和被监控的应用。打开浏览器访问 Admin Server 的 URL(如:http://localhost:8080/admin),你将看到所有注册的应用及其状态。