View a markdown version of this page

查看 Elastic Beanstalk 环境的部署日志 - AWS Elastic Beanstalk

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

查看 Elastic Beanstalk 环境的部署日志

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

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

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

注意

部署日志在 2026 年 3 月 11 日当天或之后发布的亚马逊 Linu x 2 和亚马逊 Linux 2023 平台版本上可用。目前不支持 Windows 平台。

支持的操作

将为以下操作生成部署日志:

  • 应用程序部署-将新的应用程序版本部署到您的环境。

  • 配置更新-更改需要实例更新的环境配置设置。

  • 环境创建-创建新环境时的初始部署。

  • 重新启动应用程序服务器-在您的实例上重新启动应用程序服务器。

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

部署日志内容

部署日志在部署期间会捕获以下信息:

  • 部署生命周期-每个部署阶段的开始和完成消息,例如Starting Application deploymentCompleted Application deployment

  • .ebextensions 输出 — 成功后,显示运行的命令的名称。失败时,最后50行cfn-init输出可帮助诊断问题。

  • 平台挂钩输出-成功后,运行的挂钩脚本的名称。失败时,最后50行挂钩输出。

  • 依赖项安装-软件包管理器的输出npm install,例如pip installcomposer install、和bundle install。成功后,仅记录完成消息。失败时,将包括最后 50 行输出。

  • 生成输出-生成命令(例如docker buildgo 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 秒后开始捕获应用程序输出。仅包含初始启动消息,如果您的应用程序需要更长时间才能生成输出,则不会出现在部署日志中。要查看完整的应用程序日志,请请求捆绑包日志或直接连接到实例。有关更多信息,请参阅 查看实例日志

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

在控制台中查看部署日志

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

查看部署历史记录

查看部署历史记录
  1. 打开 Elastic Beanstalk 控制台,然后在 “区域” 列表中,选择您的。 AWS 区域

  2. 在导航窗格中,选择 Environments(环境),然后从列表中选择环境的名称。

  3. 在环境仪表板中,选择 “部” 选项卡。

    “部署” 选项卡显示了环境的部署表。每行包含以下信息:

    • 请求 ID-部署的唯一标识符。

    • 状态-成功失败进行中

    • 类型-部署类型,例如环境创建应用程序部署配置更新托管平台更新重启应用程序服务器重建环境恢复环境交换环境域终止环境

    • 开始时间-部署开始的时间。

    • 持续时间-完成部署所需的时间。

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

查看部署详细信息和日志

查看部署详细信息
  1. 在 “部” 选项卡上,选择要检查的部署的 “请求 ID” 链接。

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

  3. 在摘要下方,选择以下选项卡之一:

    • 事件-与此部署相关的事件的时间表,经过筛选后仅显示所选部署的事件。

    • 部署日志-来自实例的合并部署日志。您可以搜索、按日志级别筛选和下载日志文件。

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

重要

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

实例上的部署日志文件

部署日志会写入每个实例的/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 日志上传

要防止部署日志上传到 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。