【问题标题】:Elastic Beanstalk environment's health severe: Following services are not running: releaseElastic Beanstalk 环境的运行状况严重:以下服务未运行:发布
【发布时间】:2021-02-20 00:08:32
【问题描述】:

我将 Django 应用程序部署到 Elastic Beanstalk (EB) Amazon Linux 2 Python 3.7 平台,一切似乎都运行良好。但是,环境的健康状况很严重,我不知道为什么。

EB 给我的唯一信息如下:

总体状态:降级 - 所有实例上的服务受损。

(只有一个实例在运行)

实例状态:严重 - 以下服务未运行:发布。

我没有找到关于“发布”服务是什么的信息。

从完整日志中,我看到的唯一错误如下:

daemon.log:

F, [2020-11-07T04:03:03.891398 #5022] FATAL -- : /opt/elasticbeanstalk/lib/ruby/lib/ruby/gems/2.6.0/gems/puma-4.3.5/lib/puma/launcher.rb:432:in `block in setup_signals': SIGTERM (SignalException)
    from /opt/elasticbeanstalk/lib/ruby/lib/ruby/gems/2.6.0/gems/puma-4.3.5/lib/puma/single.rb:117:in `join'
    from /opt/elasticbeanstalk/lib/ruby/lib/ruby/gems/2.6.0/gems/puma-4.3.5/lib/puma/single.rb:117:in `run'
    from /opt/elasticbeanstalk/lib/ruby/lib/ruby/gems/2.6.0/gems/puma-4.3.5/lib/puma/launcher.rb:172:in `run'
    from /opt/elasticbeanstalk/lib/ruby/lib/ruby/gems/2.6.0/gems/puma-4.3.5/lib/puma/cli.rb:80:in `run'
    from /opt/elasticbeanstalk/lib/ruby/lib/ruby/gems/2.6.0/gems/healthd-1.0.6/bin/healthd:112:in `block in <top (required)>'
    from /opt/elasticbeanstalk/lib/ruby/lib/ruby/gems/2.6.0/gems/healthd-1.0.6/bin/healthd:19:in `chdir'
    from /opt/elasticbeanstalk/lib/ruby/lib/ruby/gems/2.6.0/gems/healthd-1.0.6/bin/healthd:19:in `<top (required)>'
    from /opt/elasticbeanstalk/lib/ruby/bin/healthd:23:in `load'
    from /opt/elasticbeanstalk/lib/ruby/bin/healthd:23:in `<main>'

从我读到的here 来看,这个 SignalException 被抛出以关闭一个进程,所以我认为它是正常的。

任何其他日志中都没有其他错误。关闭增强的运行状况检查将是here 所述的简单“解决方案”,但我想继续使用它们。

非常感谢任何帮助。

【问题讨论】:

  • 我发现 EB 非常挑剔。尝试重新部署您的应用,这通常会为我纠正未经证实的错误。
  • 我已经尝试重新部署几次,但没有任何变化。您是否已将 Django 应用程序部署到生产环境?如果是这样,您是否推荐其他托管服务?我正在考虑手动配置 EC2 实例,但 EB 似乎提供了一个更简单的界面来配置负载均衡器、监控等。
  • 我将 EB 用于几个不同的基于 Django 的 Web 应用程序,除了一些怪癖之外,它运行良好。您可以尝试打印日志吗? eb logs 在您的终端中
  • 我在运行该命令时收到 HTTP 403: Forbidden 错误。这很奇怪,因为我的用户拥有对 EB 的完全访问权限。这不是 EB 在请求“完整日志”时提供的日志吗?
  • 我也遇到过这个问题 - 我也无法从 aws Web 界面下载日志 - 但是,我能够 eb ssh 进入我的 eb-env 并找到那里的日志 - 你可以试试吗?

标签: django amazon-web-services amazon-elastic-beanstalk


【解决方案1】:

.config 命令:

container_commands:
  01_migrate:
    command: "source $(find /var/app/venv/ -name activate) && export $(sudo egrep -v '^#' /opt/elasticbeanstalk/deployment/env | xargs) && python manage.py migrate --noinput"
    leader_only: true
  02_static:
    command: "source $(find /var/app/venv/ -name activate) && export $(sudo egrep -v '^#' /opt/elasticbeanstalk/deployment/env | xargs) && python manage.py collectstatic --noinput"
    leader_only: true

【讨论】:

  • 试过了,命令运行成功,但状态又严重了。很抱歉一直打扰您,您一直很有帮助,但最后一个请求:您部署到 Amazon Linux 2 Python 3.7 平台的 Django 应用程序的 .ebextensions 文件夹中是否还有其他 .config 文件?如果是这样,您可以编辑此答案以包含它们吗?非常感谢丹尼尔!
  • 没问题 - 这就是我拥有的 AL2 Py 3.7 配置文件 - 如前所述,升级 EBS 版本导致我之前的配置文件崩溃。如果可以的话,也许尝试回滚 EBS 版本?
  • 我还有其他 .config 文件。我删除了它们,只保留了你在这个答案中指定的那个,没有任何改变。因此,其他 .config 文件似乎毫无用处。配置 EB AL2 平台就像在黑暗中行走。无论如何,非常感谢您的帮助。我会保持环境不变,如果我设法纠正它,我会发布答案。
猜你喜欢
  • 1970-01-01
  • 2020-11-30
  • 2015-11-16
  • 2016-02-13
  • 2016-06-14
  • 2018-11-07
  • 2018-04-01
  • 2016-09-06
  • 2021-01-16
相关资源
最近更新 更多