

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 查看 Elastic Beanstalk 环境的部署日志
<a name="environments-deployment-logs"></a>

Elastic Beanstalk 会为每次部署到您的环境生成部署日志。部署日志按时间顺序提供了部署期间发生的情况的统一视图，包括依赖项安装、构建输出、应用程序启动以及遇到的任何错误。您可以使用部署日志快速诊断失败的部署，而无需通过 SSH 连接到实例或关联多个日志文件。

部署日志在本地写入每个实例。对于通过控制台、CLI、API 或托管更新触发的部署，一个实例在部署期间会持续将其日志上传到 Amazon S3。Elastic Beanstalk 控制台从 Amazon S3 读取日志，因此您无需连接到实例即可监控进度。

部署日志经过精心设计，简洁明了。成功后，日志仅显示摘要消息（例如，哪些命令已运行并已完成）。失败时，日志最多包含失败步骤的 50 行输出，因此您无需筛选详细输出即可看到错误。

**注意**  
部署日志在 2026 年 3 月 11 日当天或之后发布的[亚马逊 Linu [x 2](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2026-03-11-al2.html) 和亚马逊 Linux 2023](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2026-03-11-al2023.html) 平台版本上可用。目前不支持 Windows 平台。

## 支持的操作
<a name="environments-deployment-logs.supported-operations"></a>

将为以下操作生成部署日志：
+ **应用程序部署**-将新的应用程序版本部署到您的环境。
+ **配置更新**-更改需要实例更新的环境配置设置。
+ **环境创建**-创建新环境时的初始部署。
+ **重新启动应用程序服务器**-在您的实例上重新启动应用程序服务器。

不修改实例上的应用程序或配置状态的操作（例如请求日志 CNAMEs、交换或更新标签）不会生成部署日志。

## 部署日志内容
<a name="environments-deployment-logs.contents"></a>

部署日志在部署期间会捕获以下信息：
+ **部署生命周期**-每个部署阶段的开始和完成消息，例如`Starting Application deployment`和`Completed Application deployment`。
+ **.ebextensions 输出** — 成功后，显示运行的命令的名称。失败时，最后50行`cfn-init`输出可帮助诊断问题。
+ **平台挂钩输出**-成功后，运行的挂钩脚本的名称。失败时，最后50行挂钩输出。
+ **依赖项安装**-软件包管理器的输出**npm install**，例如**pip install**、**composer install**、和**bundle install**。成功后，仅记录完成消息。失败时，将包括最后 50 行输出。
+ **生成输出**-生成命令（例如**docker build****go build**、和 Java 构建）的输出。失败时，将包括最后 50 行输出。
+ **应用程序启动输出**-应用程序启动后的初始输出。来源取决于您的平台：
  + *Docker* — 来自**docker logs**或的容器日志 **docker compose logs**
  + *Java SE、Go、Node.js、Python、Ruby、.NET* — 处理标准输出日志
  + *Tomcat — C* atalina 日志输出
  + *PHP — PH* P-FPM 主服务器和池错误日志
  + *ECS* — 来自每个任务容器的容器日志
**注意**  
在应用程序启动 2 秒后开始捕获应用程序输出。仅包含初始启动消息，如果您的应用程序需要更长时间才能生成输出，则不会出现在部署日志中。要查看完整的应用程序日志，请请求捆绑包日志或直接连接到实例。有关更多信息，请参阅 [查看实例日志](using-features.logging.md)。

当部署步骤失败时，日志会将其标记为`[ERROR]`并包含失败步骤的最多 50 行输出。如果部署日志不包含足够的详细信息，则可以从 “日志” 选项卡检索完整的实例日志（包括`eb-engine.log``eb-hooks.log`、和应用程序**日志**）。有关更多信息，请参阅 [查看您的 Elastic Beanstalk 环境中的 Amazon EC2 实例的日志](using-features.logging.md)。

## 在控制台中查看部署日志
<a name="environments-deployment-logs.console"></a>

Elastic Beanstalk 控制台在环境控制面板上**提供**了 “部署” 选项卡，您可以在其中查看部署历史记录和日志。

### 查看部署历史记录
<a name="environments-deployment-logs.console.history"></a>

**查看部署历史记录**

1. 打开 [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) 控制台，然后**在 “区域” 列表中，选择您**的。 AWS 区域

1. 在导航窗格中，选择 **Environments**（环境），然后从列表中选择环境的名称。

1. 在环境仪表板中，选择 “部**署**” 选项卡。

   “部署” 选项卡显示了环境的部署表。每行包含以下信息：
   + **请求 ID**-部署的唯一标识符。
   + **状态**-*成功*、*失败*或*进行中*。
   + **类型**-部署类型，例如*环境创建*、*应用程序部署*、*配置更新*、*托管平台更新*、*重启应用程序服务器*、*重建环境*、*恢复环境*、*交换环境域*或*终止环境*。
   + **开始时间**-部署开始的时间。
   + **持续时间**-完成部署所需的时间。

部署进行时，该选项卡会自动轮询更新。您也可以选择刷新按钮来手动重新加载列表。

### 查看部署详细信息和日志
<a name="environments-deployment-logs.console.detail"></a>

**查看部署详细信息**

1. 在 “部**署**” 选项卡上，选择要检查的部署的 “**请求 ID**” 链接。

1. 部署详细信息页面显示一个摘要部分，其中包含请求 ID、状态、部署类型、开始时间、持续时间和部署策略。*当可以从部署事件中确定部署策略时，就会显示部署策略（例如 “*全部一次*”、“*滚动”、“滚动”、“附加批*次”、“*不可变*” 或 “*流量分割*”）。*

1. 在摘要下方，选择以下选项卡之一：
   + **事件**-与此部署相关的事件的时间表，经过筛选后仅显示所选部署的事件。
   + **部署日志**-来自实例的合并部署日志。您可以搜索、按日志级别筛选和下载日志文件。

对于正在进行的部署，日志选项卡会自动刷新以在写入时显示新的日志条目。部署完成后，控制台会获取最终的日志状态，以确保您看到完整的输出。

**重要**  
在控制台中查看部署日志需要`s3:GetObject`获得环境的 Amazon S3 存储桶 (`elasticbeanstalk-region-account-id`) 的权限。如果您的 IAM 策略不包含此权限，则部署历史记录和事件仍可用，但日志选项卡将显示错误。

## 实例上的部署日志文件
<a name="environments-deployment-logs.instance"></a>

部署日志会写入每个实例的`/var/log/deployments/`目录中。日志文件名取决于部署的触发方式：
+ **工作流控制的部署**（通过控制台、CLI 或 API 触发）—`eb-deployment-request-id.log`，其中*request-id*是唯一的部署请求 ID。
+ **自启动部署**（实例启动或重启应用服务器）—`eb-deployment-unix-timestamp.log`.

Elastic Beanstalk 会自动轮换这些文件，在每个实例上保留 50 个最新的部署日志。

对于受工作流程控制的部署，日志将通过以下路径上传到 Amazon S3：

```
s3://elasticbeanstalk-region-account-id/resources/environments/logs/deployments/environment-id/log-filename
```

在多实例环境中，第一个开始上传的实例会占用整个部署的角色。在部署期间，该实例会将其日志上传到 Amazon S3。所有实例仍会在本地写入部署日志。

**重要**  
将部署日志上传到 Amazon S3 需要在实例配置文件中获得环境的 Amazon S3 存储桶的`s3:PutObject`许可，并且 VPC 配置必须允许连接到 Amazon S3。

每个文件上传的部署日志上限为 1 MB。如果部署日志超过此大小，则上传的版本将被截断，并显示一条消息，表明实例上有完整的日志。

### 禁用 S3 日志上传
<a name="environments-deployment-logs.disable"></a>

要防止部署日志上传到 Amazon S3，请在您的环境中设置以下环境属性：

```
option_settings:
  - namespace:  aws:elasticbeanstalk:application:environment
    option_name:  EB_DEPLOYMENT_LOG_S3_DISABLED
    value:  true
```

设置此环境属性后，部署日志仍会在每个实例`/var/log/deployments/`上本地写入，但不会上传到 Amazon S3，也不会出现在控制台的 “**部署**” 选项卡中。您也可以在 “**配置**” 页面的 “**软件**” 下设置此属性，或者使用 EB CLI 或 AWS CLI。