

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

# 基本运行状况报告
<a name="using-features.healthstatus"></a>

本主题介绍 Elastic Beanstalk 基本运行状况提供的功能。

Amazon Elastic Beanstalk 使用来自多个来源的信息来确定您的环境是否可用并处理来自 Internet 的请求。环境的运行状况由四种颜色之一表示，并显示在 Elastic Beanstalk 控制台的[环境概述](environments-console.md)页面上。它也可以[DescribeEnvironments](https://docs.amazonaws.cn/elasticbeanstalk/latest/api/API_DescribeEnvironments.html)通过 API 获得，也可以通过 [EB CLI](eb-cli3.md) 调用**eb status**。

 基本运行状况报告系统根据 Elastic Load Balancing 为负载均衡的环境或 Amazon Elastic Compute Cloud 为单实例环境执行的运行状况检查，提供有关 Elastic Beanstalk 环境中的实例运行状况的信息。

除了检查 EC2 实例的运行状况外，Elastic Beanstalk 还会监控您环境中的其他资源，并报告可能导致用户无法使用您的环境的资源缺失或配置不正确。

您的环境中的资源收集的指标每隔五分钟就会发布到 Amazon CloudWatch 。这包括来自 Elastic Load Balancing 的操作系统指标 EC2、请求指标。您可以在环境控制台的 “[监控” 页面](environment-health-console.md)上查看基于这些 CloudWatch 指标的图表。对于基本运行状况，这些指标将不会用于确定环境的运行状况。

**Topics**
+ [运行状况颜色](#using-features.healthstatus.colors)
+ [Elastic Load Balancing 运行状况检查](#using-features.healthstatus.understanding)
+ [单实例和工作线程层环境运行状况检查](#monitoring-basic-healthcheck-singleinstance)
+ [额外检查](#monitoring-basic-additionalchecks)
+ [亚马逊 CloudWatch 指标](#monitoring-basic-cloudwatch)

## 运行状况颜色
<a name="using-features.healthstatus.colors"></a>

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


****  

| 颜色 | 描述 | 
| --- | --- | 
|  灰色  | 正在更新您的环境。 | 
|  Green  |  您的环境已通过最近的运行状况检查。您的环境中至少有一个实例可用并且正在接收请求。  | 
|  黄色  |  您的环境未能通过一项或更多项运行状况检查。对您的环境的某些请求将会失败。  | 
|  Red  |  您的环境未能通过三项或更多项的运行状况检查，或环境资源已不可用。请求持续失败。  | 

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

## Elastic Load Balancing 运行状况检查
<a name="using-features.healthstatus.understanding"></a>

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

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

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

有关 Elastic Load Balancing 运行状况检查的更多信息，请参阅 *Elastic Load Balancing 用户指南* 中的[运行状况检查](https://docs.amazonaws.cn/elasticloadbalancing/latest/userguide/TerminologyandKeyConcepts.html#healthcheck)。

**注意**  
配置运行状况检查 URL 不会更改环境的 Auto Scaling 组的运行状况检查行为。运行状况不佳的实例会从负载均衡器中移除，但不会自动被 Amazon A EC2 uto Scaling 替换，除非您将 Amazon A EC2 uto Scaling 配置为使用 Elastic Load Balancing 运行状况检查作为替换实例的基础。要将 Amazon A EC2 uto Scaling 配置为替换未通过 Elastic Load Balancing 运行状况检查的实例，请参阅[Elastic Beanstalk 环境的 Auto Scaling 运行状况检查设置](environmentconfig-autoscaling-healthchecktype.md)。

## 单实例和工作线程层环境运行状况检查
<a name="monitoring-basic-healthcheck-singleinstance"></a>

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

有关亚马逊 EC2 实例状态检查的更多信息，请参阅*亚马逊 EC2 用户指南*中的[通过状态检查监控实例](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/monitoring-system-instance-status-check.html)。

## 额外检查
<a name="monitoring-basic-additionalchecks"></a>

除 Elastic Load Balancing 运行状况检查之外，Elastic Beanstalk 还监控您环境中的资源并在它们部署失败、未正确配置或变得不可用时将运行状况状态更改为红色。这些检查确认：
+ 环境的 Auto Scaling 组可用且至少有一个实例。
+ 环境的安全组可用且配置为允许端口 80 上的传入流量。
+ 环境别名记录存在，且指向正确的负载均衡器。
+ 在工作线程环境中，至少每三分钟轮询一次 Amazon Simple Queue Service (Amazon SQS) 队列。

## 亚马逊 CloudWatch 指标
<a name="monitoring-basic-cloudwatch"></a>

对于基本运行状况报告，Elastic Beanstalk 服务不会向亚马逊发布任何指标。 CloudWatch用于在环境控制台的 “[监控” 页面](environment-health-console.md)上生成图表的 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 开发者指南》中的以下主题：

 


**指标**  

| 命名空间 | Topic | 
| --- | --- | 
| AWS::ElasticLoadBalancing::LoadBalancer | [Elastic Load Balancing 指标和资源](https://docs.amazonaws.cn/AmazonCloudWatch/latest/DeveloperGuide/elb-metricscollected.html) | 
| AWS::AutoScaling::AutoScaling群组 | [Amazon Elastic Compute Cloud 指标和资源](https://docs.amazonaws.cn/AmazonCloudWatch/latest/DeveloperGuide/ec2-metricscollected.html) | 
| AWS::SQS::Queue | [Amazon SQS 指标和资源](https://docs.amazonaws.cn/AmazonCloudWatch/latest/DeveloperGuide/sqs-metricscollected.html) | 
| AWS:: RDS:: DBInstance | [Amazon RDS 维度和指标](https://docs.amazonaws.cn/AmazonCloudWatch/latest/DeveloperGuide/rds-metricscollected.html) | 

### 工作线程环境运行状况指标
<a name="w2aac43c11c23c18"></a>

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

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