AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

基本运行状况报告

AWS Elastic Beanstalk 使用来自多种来源的信息确定您的环境是否可用以及是否正在处理来自 Internet 的请求。环境的运行状况由四种颜色之一表示,这些颜色显示在环境控制面板中,并通过使用 EB CLI 调用 eb statusDescribeEnvironments API 中提供。

在版本 2 Linux 平台配置之前,唯一的运行状况报告系统为基本运行状况。基本运行状况报告系统根据 Elastic Load Balancing 为负载均衡的环境或 Amazon Elastic Compute Cloud 为单实例环境执行的运行状况检查,提供有关 Elastic Beanstalk 环境中的实例运行状况的信息。

除检查 EC2 实例的运行状况之外,Elastic Beanstalk 还监控您的环境中的其他资源并报告可能会导致您的环境对用户不可用的缺失或错误配置的资源。

您的环境中的资源收集的指标将会以每五分钟一次的间隔发布到 Amazon CloudWatch。这包括来自 EC2 的操作系统指标以及来自 Elastic Load Balancing 的请求指标。您可以根据环境控制台的监控页面上的这些 CloudWatch 指标来查看图表。对于基本运行状况,这些指标将不会用于确定环境的运行状况。

运行状况颜色

Elastic Beanstalk 将根据在 Web 服务器环境中运行的应用程序响应运行状况检查的方式来报告该环境的运行状况。Elastic Beanstalk 使用四种颜色来描述状态,如下表所示:

颜色 描述

灰色

正在更新您的环境。

Green

您的环境已通过最近的运行状况检查。您的环境中至少有一个实例可用并且正在接收请求。

黄色

您的环境未能通过一项或更多项运行状况检查。对您的环境的某些请求将会失败。

Red

您的环境未能通过三项或更多项的运行状况检查,或环境资源已不可用。请求持续失败。

这些描述仅适用于使用基本运行状况报告的环境。请参阅运行状况颜色和状态以了解与增强型运行状况相关的详细信息。

Elastic Load Balancing 运行状况检查

在负载均衡的环境中,Elastic Load Balancing 将每 10 秒向环境中的每个实例发送一个请求,以确认实例正常运行。默认情况下,负载均衡器配置为打开端口 80 上的 TCP 连接。如果实例确认连接,则被视为运行状况良好。

您可以选择通过在应用程序中指定现有资源来覆盖此设置。如果您指定路径 (如 /health),则运行状况检查 URL 会设置为 HTTP:80/health。运行状况检查 URL 应设置为始终由您的应用程序提供服务的路径。如果将它设置由位于您的应用程序前面的 Web 服务器提供服务或缓存的静态页面,运行状况检查将不会显示应用程序服务器或 Web 容器的问题。有关修改运行状况检查 URL 的说明,请参阅 运行状况检查

如果已配置运行状况检查 URL,则 Elastic Load Balancing 将预期其发送的 GET 请求返回一个 200 OK 响应。如果应用程序未能在 5 秒内响应或以任何其他 HTTP 状态代码响应,它将不会通过运行状况检查。连续 5 次运行状况检查失败后,Elastic Load Balancing 将禁用该实例。

有关 Elastic Load Balancing 运行状况检查的更多信息,请参阅 Elastic Load Balancing 用户指南 中的运行状况检查

注意

配置运行状况检查 URL 不会更改环境的 Auto Scaling 组的运行状况检查行为。运行状况不佳的实例将从负载均衡器中移除,但不会自动由 Amazon EC2 Auto Scaling 替换,除非您将 Amazon EC2 Auto Scaling 配置为使用 Elastic Load Balancing 运行状况检查作为替换实例的基础。要配置 Amazon EC2 Auto Scaling 以替换 Elastic Load Balancing 运行状况检查失败的实例,请参阅Auto Scaling 运行状况检查设置

单实例和工作线程层环境运行状况检查

在单实例环境或工作线程层环境中,Elastic Beanstalk 通过监控其 Amazon EC2 实例状态来确定实例的运行状况。Elastic Load Balancing 运行状况设置(包括 HTTP 运行状况检查 URL)不能用于这些环境类型中。

有关 Amazon EC2 实例状态检查的更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的使用状态检查监控实例

额外检查

除 Elastic Load Balancing 运行状况检查之外,Elastic Beanstalk 还监控您环境中的资源并在它们部署失败、未正确配置或变得不可用时将运行状况状态更改为红色。这些检查确认:

  • 环境的 Auto Scaling 组可用且至少有一个实例。

  • 环境的安全组可用且配置为允许端口 80 上的传入流量。

  • 环境别名记录存在,且指向正确的负载均衡器。

  • 在工作线程环境中,Amazon Simple Queue Service (Amazon SQS) 队列每三分钟至少被轮询一次。

Amazon CloudWatch 指标

使用基本运行状况报告,Elastic Beanstalk 服务不会将任何指标发布到 Amazon CloudWatch。用于在环境控制台的监控页面生成图表的 CloudWatch 指标由您的环境中的资源发布。

例如,EC2 将为您的环境的 Auto Scaling 组中的实例发布以下指标:

CPUUtilization

目前正在使用的计算单位的百分比。

DiskReadBytes
DiskReadOps
DiskWriteBytes
DiskWriteOps

读取和写入的字节数,以及读取和写入操作数。

NetworkIn
NetworkOut

发送和接收的字节数。

Elastic Load Balancing 将为您的环境的负载均衡器发布以下指标:

BackendConnectionErrors

负载均衡器和环境实例之间失败的连接数。

HTTPCode_Backend_2XX
HTTPCode_Backend_4XX

您的环境中的实例生成的成功 (2XX) 和客户端错误 (4XX) 响应代码数。

Latency

负载均衡器将请求中继到实例和响应被接收之间的秒数。

RequestCount

完成的请求数。

这些列表并不全面。有关可为这些资源报告的指标的完整列表,请参阅《Amazon CloudWatch 开发人员指南》中的以下主题:

指标

命名空间 主题
AWS::ElasticLoadBalancing::LoadBalancer Elastic Load Balancing 指标和资源
AWS::AutoScaling::AutoScalingGroup Amazon Elastic Compute Cloud 指标和资源
AWS::SQS::Queue Amazon SQS 指标和资源
AWS::RDS::DBInstance Amazon RDS 维度与指标

工作线程环境运行状况指标

仅对于工作线程环境,SQS 守护程序将环境运行状况的自定义指标发布到 CloudWatch,其中值 1 表示绿色。您可使用 ElasticBeanstalk/SQSD 命名空间在您的账户中查看 CloudWatch 运行状况指标数据。指标维度为 EnvironmentName,并且指标名称为 Health。所有实例都会将其指标发布到同一命名空间。

要启用守护程序来发布指标,环境的实例配置文件必须有权调用 cloudwatch:PutMetricData。此权限包括在默认实例配置文件中。有关更多信息,请参阅 管理 Elastic Beanstalk 实例配置文件