【问题标题】:Diagnosing occasional HTTP 5xx errors in Elastic Beanstalk and Elastic Load Balancer在 Elastic Beanstalk 和 Elastic Load Balancer 中诊断偶尔出现的 HTTP 5xx 错误
【发布时间】:2016-09-24 12:22:31
【问题描述】:
我在 Elastic Beanstalk 中的监控选项卡偶尔会显示来自 EB 实例和执行其负载平衡的 ELB 的 HTTP 5xx 错误。
问题是我通常只在它们发生几个小时后才能看到这些,而当我登录到 EB 实例时,日志已经轮换,看不到错误的痕迹。
记录与这些错误相关的请求和响应以供以后查看的最佳方式是什么?
【问题讨论】:
标签:
amazon-web-services
amazon-elastic-beanstalk
amazon-elb
【解决方案1】:
实现此目的的最佳且廉价的选择是在 EC2 实例上设置一个 cron 作业,该作业将每 15 分钟左右将日志移动到 AWS S3 存储桶。或者换句话说,将日志存储在 AWS S3 中,以便您可以随时分析它们。
【解决方案2】:
以下是我在过去几周发现的一些事情(我稍后可能会编辑成更连贯的答案):
- 考虑这里的分层:我们有 ELB -> httpd -> Tomcat(在我的示例中)。我忘记了 httpd (Apache 2.2 atm)
- 您可以启用 ELB 登录到您选择的 S3 存储桶。这使您可以查看返回给客户端的结果
- 从那里,跟踪到 httpd 以查看
/var/log/httpd 中是否有任何错误
- 然后从那里跟踪到 Tomcat 日志,看看那里是否弹出相同的错误
- 我在 ELB 和 httpd 中看到了未在 Tomcat 中显示的错误
- 我还看到了许多类似于以下内容的错误消息:
->
"proxy: error reading status line from remote server"
"(103)Software caused connection abort: proxy: pass request body failed"
仔细阅读,这些可能是由mod_proxy 中的错误引起的。