基本运行状况报告 - AWS Elastic Beanstalk

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

基本运行状况报告

AWS Elastic Beanstalk 使用来自多个来源的信息来确定您的环境是否可用并处理来自 Internet 的请求。环境的运行状况由四种颜色之一表示,并显示在 Elastic Beanstalk 控制台的环境概述页面上。它也可以DescribeEnvironments通过 API 获得,也可以通过 EB CLI 调用eb status

在版本 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 实例状态检查的更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南 中的使用状态检查监控实例

额外检查

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

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

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

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

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

亚马逊 CloudWatch 指标

对于基本运行状况报告,Elastic Beanstalk 服务不会向亚马逊发布任何指标。 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::AutoScaling群组 Amazon Elastic Compute Cloud 指标和资源
AWS::SQS::Queue Amazon SQS 指标和资源
Amazon::RDS::DBInstance Amazon RDS 维度和指标

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

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

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