Amazon web services Elastic Beanstalk Worker sqsd在所有实例上都处于故障模式
我有一个弹性的beanstalk worker环境,从我的最新部署开始,该环境已过渡到“严重”健康状态。它给我的错误是: sqsd在所有实例上都处于故障模式Amazon web services Elastic Beanstalk Worker sqsd在所有实例上都处于故障模式,amazon-web-services,amazon-sqs,amazon-elastic-beanstalk,Amazon Web Services,Amazon Sqs,Amazon Elastic Beanstalk,我有一个弹性的beanstalk worker环境,从我的最新部署开始,该环境已过渡到“严重”健康状态。它给我的错误是: sqsd在所有实例上都处于故障模式 如何修复此问题/获取有关此问题的更多信息?这几乎可以肯定,因为您最近的部署未通过运行状况检查。请参阅/var/log/aws sqsd/default.log的内容(可通过环境的“日志”部分找到)。这将为您提供更多信息,例如: 对URL“”的服务运行状况检查失败,http状态代码为“500” sqsd处于故障模式错误可能有不同的原因,例如,
如何修复此问题/获取有关此问题的更多信息?这几乎可以肯定,因为您最近的部署未通过运行状况检查。请参阅/var/log/aws sqsd/default.log的内容(可通过环境的“日志”部分找到)。这将为您提供更多信息,例如: 对URL“”的服务运行状况检查失败,http状态代码为“500”
sqsd处于故障模式
错误可能有不同的原因,例如,健康检查可能会失败,http状态代码为400
或500
,具体取决于一些潜在问题
要了解更多信息,您可以ssh
进入worker实例(例如EC2管理控制台>实例>实例>实例上的RMB>连接),然后尝试探测http://localhost/
,例如使用curl
有一次,我们的工作环境出现了类似的sqsd处于故障模式的错误,状态为400
。这是由于(Django)settings.py中的ALLOWED\u HOSTS
值不正确造成的
还有一次,在尝试更新到最新的Amazon Linux平台版本后,我们的worker环境中出现了类似的问题,状态为500。请注意,我们的worker env已经运行了好几个月,没有出现任何问题,并且我们没有修改应用程序版本,也没有修改环境配置
失败的平台更新尝试的日志(aws sqsd/default.log
)显示:
2018-10-19T09:06:52Z healthcheck错误:服务healthcheck到URL”http://localhost/health/“失败,http状态代码为“500”
然而,更新尝试失败之前的日志显示:
2018-10-19T08:38:43Z消息:发送至http://localhost:80
有趣的是,根据《健康检查指南》,员工甚至不能使用健康检查URL(如果我理解正确的话…):
在单个实例或工作者层环境中,Elastic Beanstalk通过监视其Amazon EC2实例状态来确定实例的运行状况。弹性负载平衡运行状况设置,包括HTTP运行状况检查URL,不能在这些环境类型中使用。[我的重点]
奇怪的是,我们的worker环境当时是使用EB web控制台配置的,使用下拉菜单中的“基于健康的滚动更新”配置部署策略“使用附加批处理滚动”
这似乎与上面的引用直接矛盾,这意味着我们的活动配置实际上是无效的(即使env已经成功运行了很长时间)
果不其然,如果我现在尝试使用EB web控制台修改环境配置中的某些内容(任何内容),我会突然遇到一个以前从未出现过的错误:
“无效的选项值:'Health'(命名空间:'aws:autoscaling:updatepolicy:rollingupdate',选项名称:'RollingUpdateType'):无法为工作层环境启用基于运行状况的滚动更新。”
此外,“基于健康的滚动更新”选项不再出现在“滚动更新类型”下拉列表中(但在我尝试应用更改之前它就已经出现了)
--编辑--
上述问题已由AWS支持部门确认。我使用示例应用程序创建了一个新的worker。它应该失败吗?@HaseebBurki您的任何环境都不应该通过健康检查。如果您遇到问题,请在Stackoverflow上发布新问题。