本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
基本运行状况报告
本主题介绍 Elastic Beanstalk 基本运行状况提供的功能。
AWS Elastic Beanstalk 使用来自多个来源的信息来确定您的环境是否可用并处理来自 Internet 的请求。环境的运行状况由四种颜色之一表示,并显示在 Elastic Beanstalk 控制台的环境概述页面上。也可以通过致电 eb status EB 来获得CLI。DescribeEnvironmentsAPI
基本运行状况报告系统根据 Elastic Load Balancing 为负载均衡的环境或 Amazon Elastic Compute Cloud 为单实例环境执行的运行状况检查,提供有关 Elastic Beanstalk 环境中的实例运行状况的信息。
除了检查EC2实例的运行状况外,Elastic Beanstalk 还会监控您环境中的其他资源,并报告可能导致用户无法使用您的环境的资源缺失或配置不正确。
您的环境中的资源收集的指标每隔五分钟就会发布到 Amazon CloudWatch 。这包括来自 Elastic Load Balancing 的操作系统指标EC2、请求指标。您可以在环境控制台的 “监控” 页面上查看基于这些 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 A EC2 uto Scaling 替换,除非您将 Amazon A EC2 uto Scaling 配置为使用 Elastic Load Balancing 运行状况检查作为替换实例的基础。要将 Amazon A EC2 uto Scaling 配置为替换未通过 Elastic Load Balancing 运行状况检查的实例,请参阅Auto Scaling 运行状况检查设置。
单实例和工作线程层环境运行状况检查
在单实例或工作线程层环境中,Elastic Beanstalk 通过监控其亚马逊实例状态来确定实例的运行状况。EC2Elastic Load B HTTP alancing 运行状况设置(包括运行状况检查URLs)不能用于这些环境类型。
有关亚马逊EC2实例状态检查的更多信息,请参阅亚马逊EC2用户指南中的通过状态检查监控实例。
额外检查
除 Elastic Load Balancing 运行状况检查之外,Elastic Beanstalk 还监控您环境中的资源并在它们部署失败、未正确配置或变得不可用时将运行状况状态更改为红色。这些检查确认:
-
环境的 Auto Scaling 组可用且至少有一个实例。
-
环境的安全组可用且配置为允许端口 80 上的传入流量。
-
环境CNAME存在且指向正确的负载均衡器。
-
在工作环境中,亚马逊简单队列服务 (AmazonSQS) 队列至少每三分钟轮询一次。
亚马逊 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::AutoScalingGroup | Amazon Elastic Compute Cloud 指标和资源 |
AWS:::SQS: 队列 | Amazon SQS 指标和资源 |
AWS::RDS::DBInstance | Amazon RDS 维度和指标 |
工作线程环境运行状况指标
仅对于工作线程环境,SQS守护程序会将环境运行状况的自定义指标发布到 CloudWatch,其中值 1 表示绿色。您可以使用ElasticBeanstalk/SQSD
命名空间查看账户中的 CloudWatch 健康指标数据。指标维度为 EnvironmentName
,并且指标名称为 Health
。所有实例都会将其指标发布到同一命名空间。
要启用守护程序来发布指标,环境的实例配置文件必须有权调用 cloudwatch:PutMetricData
。此权限包括在默认实例配置文件中。有关更多信息,请参阅管理 Elastic Beanstalk 实例配置文件。