发生故障时如何查看 AWS Elastic Beanstalk 部署过程日志

Posted

技术标签:

【中文标题】发生故障时如何查看 AWS Elastic Beanstalk 部署过程日志【英文标题】:How to view AWS Elastic Beanstalk deployment process log in case of failure 【发布时间】:2016-01-07 09:48:35 【问题描述】:

我有一个 php 应用程序部署在 Elastic Beanstalk 上以获取最新更改,代码目录被压缩(在 windows 环境下开发),然后通过“上传和部署”选项上传。它处理所有事情,最后由于一些健康检查问题而失败。

ERROR   During an aborted deployment, some instances may have deployed the new application version. To ensure all instances are running the same version, re-deploy the appropriate application version.
ERROR   Failed to deploy application.
ERROR   Instance id(s) 'unique-instance-id' did not pass health check after command execution. Aborting the operation.
INFO    Command execution completed on 1 of 2 instances in environment.
INFO    Deploying new version to instance(s).

如果代码目录被压缩到MacBook然后上传,则不会出现此问题。

我可以假设EOL End of line 可能存在一些问题,或者可能是windowslinux 的其他压缩格式

我搜索了很多,但解决方案是将环境上传到环境,然后运行 ​​dos2unix 命令。但我无权访问该实例。只有亚马逊前端面板才能上传文件。

问题: 我只需要知道如何查看Elastic Beanstalk 进程日志的详细日志以获取应用程序进程的“上传和部署”(不是我上面粘贴的跟踪)。

我还尝试了“日志”选项卡(链接)左侧菜单。它有助于下载包含 httpd(access_log, error_log[非常旧的错误消息]) 和其他一些日志文件的日志 zip 文件。

但是,这些日志文件无助于了解部署失败的原因。

【问题讨论】:

你试过eb cli吗? 不,从来没有用过,它对我有什么帮助,请你解释一下。我也会试试的 这可能是因为 cli 会为您进行压缩,所以 可能 防止这些问题。 要查看的重要日志(当您单击左侧的“日志”链接时)称为eb_activity.log。这应该有关于出了什么问题的更详细的信息。 【参考方案1】:

对我来说,部署过程卡在“环境中 2 个实例中的 1 个已完成命令执行”的问题。是因为健康检查失败。他们失败了,因为我的应用程序在运行状况检查中期待 200 状态代码,但收到了 302(如访问日志中所示)。这是在负载均衡器 > 进程 > 编辑 > 健康检查 > HTTP 代码下的弹性 beantalk 中配置的。我调试了好几天,希望对大家有所帮助!

【讨论】:

【参考方案2】:
    在创建 zip 文件之前对文件运行 dos2unix。 Dos2unix 也可用于 Windows。

【讨论】:

以上是关于发生故障时如何查看 AWS Elastic Beanstalk 部署过程日志的主要内容,如果未能解决你的问题,请参考以下文章

AWS - Elastic Load Balancing 是不是真的阻止了 LOAD BALANCER 故障转移?

AWS Elastic Beanstalk上发生了哪种事件会触发SNS通知?

aws cdk appsync Schema Creation Status is FAILED with details: 保存架构时发生内部故障

AWS Elastic Beanstalk + Git 子模块

AWS Elastic BeanStalk php.ini 文件更新

更改 IAM 用户密钥时如何更新 Elastic Beanstalk 环境变量中的 AWS 凭证?