你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Spring Boot Actuator 管理和监视应用

注意

基本、标准和企业计划将从 2025 年 3 月中旬开始弃用,停用期为 3 年。 建议转换到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告

标准消耗和专用计划将于 2024 年 9 月 30 日开始弃用,并在六个月后完全关闭。 建议转换到 Azure 容器应用。 有关详细信息,请参阅将 Azure Spring Apps 标准消耗和专用计划迁移到 Azure 容器应用

本文适用于:✔️ Java C#

本文适用于: ✔️ 基本版/标准版 ✔️ 企业版

Spring Boot 执行器为应用提供生产就绪功能。 可以使用此工具轻松监视应用、收集指标并了解状态或数据库活动。 无需从头构建即可访问专业级工具。

执行器公开有关正在运行的应用程序的重要操作数据,例如运行状况、指标、信息等。 执行器使用 HTTP 终结点或 Java 管理扩展 (JMX),因而易于交互。 集成后,执行器提供多个默认终结点,与其他 Spring 模块一样,它易于配置和扩展。

Azure Spring Apps 使用执行器通过 JMX 来扩充指标。 它还可以与企业计划中的应用程序实时视图配合使用,帮助你从应用中获取数据并与之交互。

显示使用 Spring Boot 执行器的数据流的关系图。

配置 Spring Boot 执行器

以下各节介绍如何配置执行器。

添加执行器依赖项

若要将执行器添加到基于 Maven 的项目,请添加以下依赖项:

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

此配置适用于所有 Spring Boot 版本,因为 Spring Boot 材料清单 (BOM) 中涵盖版本。

配置执行器终结点

默认情况下,Spring Boot 应用程序仅公开 health 终结点。 若要观察配置以及可配置的环境,请使用以下步骤另外启用 envconfigprops 终结点:

  1. 转到应用“概述”窗格,选择“设置”菜单中的“配置”,然后转到“环境变量”配置页

  2. 采用类似于“key:value”的形式添加以下属性。 此环境将打开以下 Spring Actuator 终结点:healthenvconfigprops

    management.endpoints.web.exposure.include: health,env,configprops
    
  3. 选择“保存”。 应用程序将自动重启并加载新环境变量。

现在可以返回到应用“概述”窗格,并等待“预配状态”更改为“成功”

若要查看所有终结点的内置和相关配置,请参阅 Spring Boot 生产就绪功能公开终结点部分。

保护执行器终结点

在将应用公开后,这些执行器终结点也会公开。 建议通过设置 management.endpoints.web.exposure.exclude=* 来隐藏所有终结点,因为 exclude 属性优先于 include 属性。 此操作会阻止企业计划中的应用程序实时视图和其他依赖于执行器 HTTP 终结点的应用或工具。

在企业计划中,可通过两种方式保护访问:

  • 可以禁用应用的公共终结点,并在 VMware Spring Cloud 网关中配置路由规则,以禁用来自公共终结点的执行器访问。 有关详细信息,请参阅配置 VMware Spring Cloud 网关

  • 可以将执行器配置为侦听与主应用程序不同的 HTTP 端口。 在独立应用程序中,执行器 HTTP 端口默认与主 HTTP 端口相同。 要使应用程序侦听不同的端口,请设置 management.server.port 属性。 应用程序实时视图无法自动检测此端口更改,因此你还需要在 Azure Spring Apps 部署中配置该属性。 然后,执行器不可公开访问,但应用程序实时视图可以通过另一个端口从执行器终结点读取数据。 有关详细信息,请参阅将应用程序实时视图与 Azure Spring Apps 企业计划配合使用

后续步骤