Во всех случаях Elastic Beanstalk Worker sqsd находится в режиме сбоя - PullRequest
0 голосов
/ 01 июня 2018

У меня эластичная рабочая среда из бобовых стеблей, которая на момент моего последнего развертывания перешла в состояние здоровья "Тяжелое".Ошибка, которую он мне дает:

sqsd находится в режиме сбоя во всех случаях

Как это исправить / получить дополнительную информацию об этом?

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Ошибка sqsd is in fault mode может иметь разные причины, например, проверка работоспособности может завершиться с кодом http http 400 или 500 в зависимости от какой-либо основной проблемы.

Чтобы узнать больше, вы можете ssh в рабочий экземпляр (например, консоль управления EC2> экземпляры> RMB в экземпляре> connect), затем попробуйте проверить http://localhost/, используя, например, curl.

В одном случае мы получили аналогичный sqsd is in fault mode ошибка из нашей рабочей среды, с status 400.Это произошло из-за неправильного значения ALLOWED_HOSTS в нашем (Django) settings.py.

В другом случае у нас была похожая проблема с status 500 в нашей рабочей среде после попытки обновления до последней версии.Версия платформы Amazon Linux.Обратите внимание, что наш рабочий env работал без проблем в течение многих месяцев, и мы не изменяли ни версию приложения, ни конфигурацию среды.

Журналы (aws-sqsd/default.log) для неудачной попытки обновления платформы показывают:

2018-10-19T09:06:52Z healthcheck-err: service healthcheck to URL "http://localhost/health/" failed with http status code "500"

, тогда как журналы с до неудачной попытки обновления показывают это:

2018-10-19T08:38:43Z message: sent to http://localhost:80

Забавнодело в том, что согласно документам AWS , работники не должны даже иметь возможность использовать URL-адреса проверки здоровья (если я правильно понимаю ...):

В среде одного уровня или рабочий Elastic Beanstalk определяет работоспособность экземпляра, отслеживая его состояние экземпляра Amazon EC2.Параметры работоспособности Elastic Load Balancing, , включая URL-адреса проверки работоспособности HTTP, нельзя использовать в этих типах среды. [мой акцент]

Как ни странно, наша рабочая среда была настроена навремя, используя веб-консоль EB, с политикой развертывания «переходя с дополнительным пакетом», используя «обновляемые обновления на основе работоспособности» из выпадающего меню.

Это, кажется, находится в прямом противоречии с цитатой выше, что означает, что наша активная конфигурация фактически недействительна (даже если env успешно работает долгое время).

Достаточно уверенно, если я сейчас пытаюсь что-то изменить (что-либо) в конфигурации среды с помощью веб-консоли EB, я неожиданно получаю сообщение об ошибке, которой никогда не было:

"Недопустимое значение параметра:« Здоровье »(Пространство имен: 'aws: автоматическое масштабирование: updatepolicy: rollupdate', OptionName: 'RollingUpdateType'): скользящие обновления на основе работоспособности нельзя включить для сред рабочего уровня. "

Кроме того," скользящие обновления на основе работоспособности«больше не отображается в раскрывающемся списке« Текущий тип обновления »(хотя он существовал до того, как я попытался применить изменение).

- edit -

Проблема, описанная выше, былаподтверждено поддержкой AWS.

0 голосов
/ 01 июня 2018

Это почти наверняка, потому что ваше последнее развертывание не прошло проверку работоспособности.См. Содержимое /var/log/aws-sqsd/default.log (которое можно найти в разделе «Журналы» среды).Это даст вам более информативную ошибку, такую ​​как:

проверка работоспособности службы по URL-адресу "http://localhost/" не удалась с кодом состояния http" 500 "

...