我的问题与AWS: None of the Instances are sending data类似,但错误消息略有不同。
我在ElasticBeanstalk上运行了一个Rails应用程序,它似乎运行正常。增强的健康监控会定期向我发送错误消息,例如:
环境运行状况已从正常转换为降级。20.0%的请求因HTTP 5xx而失败。
其中百分比变化高达100%。即使我没有做任何更改,一分钟后我收到一条后续消息,告诉我一切都恢复正常:
环境健康状况已从“降级”过渡到“良好”。
我已经从ElasticBeanstalk下载了完整的日志,但我不知道在哪里查看(在不同的目录中有大约20个不同的日志文件)。
我目前正在使用免费的AWS层,其中包含最小的数据库、服务器等示例。这可能是原因吗?我应该查看哪些日志文件,以及我应该查找什么?
4条答案
按热度按时间zpjtge221#
我在ElasticBeanstalk上运行rails应用程序,发现把Beanstalk看作一台计算机很有帮助(在本例中为Amazon EC2示例)运行Rails应用程序和Web服务器(乘客或美洲狮)。当你得到一个500错误,这可能是因为您的rails应用程序没有正确部署-在这种情况下,Passenger或Puma将返回错误-或者您的应用程序已正确部署,但遇到了与本地计算机上的错误类似的错误。
在这两种情况下,要诊断错误,请从AWS控制台下载完整的日志(打开正确的应用程序环境,然后选择日志〉请求日志〉完整日志〉下载)。部署错误更难诊断,但我建议从查看
var-XX/logs/log/eb-activity.log
开始。我怀疑你的错误来自你的rails应用程序本身,在这种情况下,我建议在var-XX/app/support/logs/passenger.log
和production.log
中查找。要查找500错误,请搜索“500内部”,然后像对待任何其他Rails错误一样对待该错误。1aaf6o9v2#
您可以转到EC2示例并运行应用程序,就像在本地计算机上运行并查看日志一样。
您可以使用
eb ssh
命令将ssh
插入到您的EC2示例中,然后转到/opt/python/
目录(对于Ruby或其他编程语言,这将有所不同)。/opt/python/run
是您可以找到从EC2示例运行的应用程序版本的目录。在run
目录中查找目录venv
和app
。**注意:**上面的文件夹结构是Python的,其他编程语言的部署后文件夹结构都是类似的,只要查找您的编程语言的部署环境的标准目录结构即可。
对于Python:
2jcobegt3#
我知道这是一个有点晚,但我想评论的技巧,我用找到错误,我用通过ssh连接,然后,一旦在应用程序中,我试图进入“rails console”它使用失败,但它通常显示你犯的错误.这个小技巧救了我的命好几次.希望它有帮助!
vxbzzdmp4#
要调试出现此错误的原因,您需要下载日志,转到您的环境/logs/request logs/full logs。下载日志并转到web.stdout.log。希望现在您可以调试问题:)