Amazon Elastic Load Balancing


Amazon Elastic Load Balancing-概述

弹性负载平衡(ELB)是Amazon Web Services(AWS)的负载平衡服务。AWS ELB自动跨多个目标(例如EC2实例)分配传入的应用程序流量,并扩展资源以满足流量需求。Elastic Load Balancing帮助IT团队根据传入的应用程序和网络流量调整容量。

AWS ELB支持三种类型的负载均衡:应用程序负载均衡,网络负载均衡经典负载均衡

  • 应用负载均衡处理来自其他服务或容器应用级先进的流量路由。
  • 网络负载均衡是理想的TCP流量的负载均衡,能够处理每秒数百万的请求,同时保持较低的延迟。

监控Amazon Elastic Load Balancing-监控内容

此页面讨论Applications Manager如何使您能够监控负载均衡,分析流量模式以及对负载均衡和目标的问题进行故障排除以优化性能。

  • 收集实时性能数据-获取有关正常主机数量,延迟,请求,错误率等的基本数据。
  • 分析连接计数统计信息-监控拒绝的连接数,以遵循负载均衡正确连接到目标并路由请求的能力。测量应用程序ELB处理的规则和字节数。
  • 跟踪健康状况和不健康状况的主机计数-监控在Application Elastic Load Balancer中注册的健康状况目标的数量。通过跟踪正常实例来保持正常主机计数
  • 对目标HTTP错误响应代码进行故障排除和监控-收集有关负载均衡生成的客户端和服务器错误的数量的统计信息。测量无法成功在负载均衡与其已注册实例之间建立会话的TLS连接数。获取由组中的目标生成的HTTP 4XX和5XX错误代码的汇总。
  • 检测实时性能问题并更快地解决-了解ELB系统的可扩展性,并开始着手监控环境中的负载均衡。Applications Manager提供了使用有关对负载均衡的请求的详细指标来监控ELB配置的功能。
  • 获取有关性能问题和瓶颈的即时通知。在终端用户遇到问题之前,请采取快速的补救措施。

创建一个新的Amazon ALB / NLB监视器

监控模式:使用SDK的CloudWatch和AWS API。

设置Amazon ELB监控的前提条件: 点击此处

要创建新的Amazon监视器,请遵循以下步骤:

  1. 点击新建监视器链接。
  2. Cloud Apps类别下选择Amazon
  3. 指定Amazon服务器的显示名称
  4. 选择ALBNLB作为您要监控的Amazon服务
  5. 输入AWS的Amazon Access Key ID,以通过API访问AWS。访问密钥包含20个字母数字字符。
  6. 输入AWS的秘密访问密钥。密钥长度应为40个字母数字字符。
  7. 选择帐户类型。添加新的Amazon监视器时,默认账户类型AWS Globa l。选择AWS中国作为帐户类型以监控AWS中国区域中的服务。
  8. 以分钟为单位指定 轮询间隔
  9. 如果要从管理服务器添加新监视器,请 选择被管服务器
  10. 从组合框(可选)中选择要与之关联的Amazon 监视器的业务组。您可以选择多个组来关联您的监视器。
  11. 点击添加监视器。这将从网络中发现Amazon服务器并开始对其进行监控。

使用添加监视器API添加ELB监视器

语法

http://[Host]:[Port]/AppManager/xml/AddMonitor?apikey=[APIKEY]&type=[TYPE]&AmazonServices=[AmazonServices]&accessKey=[ACCESSKEY]&SecretAccessKey=[SECRETACCESSKEY]&displayname=[DISPLAYNAME]&AccountType=[ACCOUNTTYPE]

请求参数

API请求中涉及的参数如下所述。另外,请参阅常见的请求参数列表.

字段 描述
type 要添加的监视器的类型。值应为 Amazon
accessKey AWS的访问密钥ID,用于通过API访问AWS。
SecretAccessKey AWS的秘密访问密钥。
AccountType
  • AwsGlobal
  • AwsChina
AmazonServices Amazon服务的类型。可能的值为:
  • EC2(用于Elastic Compute Cloud)
  • RDS(用于关系数据库服务)
  • S3(用于S3 Buckets)
  • SNS(用于简单通知服务)
  • DYNAMODB,EC2,RDS,S3,SNS(用于多种服务)
  • ALB(用于应用程序负载均衡)
  • NLB(用于网络负载均衡)

示例请求

http://localhost:9595/AppManager/xml/AddMonitor?apikey=15212eb94d705a3b0993e30709818c4e&type=Amazon&AmazonServices=ALB,NLB&accessKey=ACCESSKEYACCESSKEYAC&SecretAccessKey=SECRETACCESSKEYSECRETACCESSKEYSECRETACCE&displayname=awsrestapi&AccountType=AwsGlobal

监控参数

通过点击监视器选项卡,转到监视器类别视图。点击云应用下的Amazon实例,选择ALBNLB。显示的是批量配置视图,包含三个选项卡中:

  • 可用性标签提供了过去24小时或30天的可用性历史记录。
  • 性能选项卡提供了过去24小时或30天的健康状况和事件。
  • 列表视图使您可以执行 批量管理配置

点击监视器名称以查看以下选项卡下列出的所有Amazon ALB指标:

点击监视器名称以查看以下选项卡下列出的所有Amazon NLB指标:

应用程序负载均衡(ALB)指标

应用程序负载均衡-概述

参数 描述
平均延迟
Average Target Latency 从请求离开负载均衡到收到目标的响应之前消耗的时间(以秒为单位)。这等效于访问日志中的target_processing_time字段。
请求
Total Requests 通过IPv4和IPv6处理的请求数。此计数仅包括带有负载均衡目标生成的响应的请求。 
Requests/Min 每分钟通过IPv4和IPv6处理请求。
连接方式
Active Connections 从客户端到负载均衡以及从负载均衡到目标的活动并发TCP连接总数。 
New Connections 从客户端到负载均衡以及从负载均衡到目标建立的新TCP连接总数。
Rejected Connections 由于负载均衡已达到其最大连接数而被拒绝的连接数。 
处理的字节
Total Data Processed 负载均衡在IPv4和IPv6上处理的字节总数。
Data Processed/Min 负载均衡在IPv4和IPv6上每分钟处理的字节数。
规则评估
Rule Evaluations 给定请求率的负载均衡处理的规则数平均为一小时。
消耗的LB容量单位
Consumed Capacity Units 负载均衡使用的负载均衡容量单位(LCU)的数量。 

应用程序负载均衡-错误

参数 描述
连接错误
Client TLS Negotiation Errors 未与负载均衡建立会话的客户端启动的TLS连接数。 
Target TLS Negotiation Errors 未与目标建立会话的负载均衡启动的TLS连接数。 
Target Connection Errors 与目标未成功建立的连接数。
负载均衡错误
ELB Client Errors 源于负载均衡的客户端错误数。 
ELB Server Errors 源于负载均衡的服务器错误数。 

应用程序负载均衡-目标组

参数 描述
配置信息
Target Group 目标组的名称。
Port 用于与目标连接的端口。
Protocol 与目标连接所使用的协议。
Target type 向该目标组注册目标时必须指定的目标类型。
Timeout(Seconds) 目标没有响应的时间(以秒为单位)。
Interval(Seconds) 单个目标的健康状况检查之间的大概时间(以秒为单位)。 
处于健康和不健康的主机
Healthy Host Count 经过健康状况检查后被视为健康的目标数。
Unhealthy Host Count 经过健康状况检查后被认为不健康的目标数。
目标组要求
Request Count 负载均衡接收到的IPv6请求数。
性能指标
Target Group 目标组的名称。
Healthy Hosts 经过健康状况检查后被视为健康的目标数。
Unhealthy Hosts 经过健康状况检查后被认为不健康的目标数。
Average Target Latency(Seconds) 从请求离开负载均衡到收到目标的响应之前消耗的时间(以秒为单位)。这等效于访问日志中的target_processing_time字段。
Total Requests 通过IPv4和IPv6处理的请求数。此计数仅包括包含特定目标组中的目标生成的响应的请求。
Requests Per Target 目标组中每个目标接收的平均请求数。您必须使用TargetGroup指定目标组。如果目标是Lambda函数,则该指标不适用。
错误
Target Group 目标组的名称。
Target Connection Errors 与目标未成功建立的连接数。
Target TLS Negotiation Errors 未与目标建立会话的负载均衡启动的TLS连接数。 
Target HTTP 5XX Errors 源于负载均衡的HTTP 5XX服务器错误代码的数量。
Target HTTP 4XX Errors 源于负载均衡的HTTP 4XX客户端错误代码的数量。 
Target HTTP 3XX Errors 源于负载均衡的HTTP 3XX重定向代码的数量。
Target HTTP 2XX Errors 目标生成的HTTP响应代码数。 

应用程序负载均衡-目标 

参数 描述
目标详细信息
Target ID 目标的ID。如果目标组的目标类型是instance,请指定一个实例ID。
Target Group 目标组的名称。
Port 目标正在侦听的端口。
Status 目标的状态-initial | healthy | unhealthy | unused | draining | unavailable
Reason
  • Heatlty:如果目标状态为健康状况,则不提供原因码。
  • Initial如果目标状态为初始状态,则原因码可以是以下值之一:
    • Elb.RegistrationInProgress-目标正在向负载均衡注册。
    • Elb.InitialHealthChecking-负载均衡仍在向目标发送确定其健康状况所需的最小健康状况检查数。
  • Unhealthy:如果目标状态不健康,原因码可以是以下值之一:
    • Target.ResponseCodeMismatch-健康状况检查未返回预期的HTTP代码。
    • Target.Timeout-健康状况检查请求超时。
    • Target.FailedHealthChecks-由于与目标的连接超时,目标响应格式错误或目标由于未知原因而无法通过健康状况检查,因此健康状况检查失败。
    • Elb.InternalError-健康状况检查由于内部错误而失败。
  • Unused:如果目标状态未使用,则原因码可以是以下值之一:
    • Target.NotRegistered-目标未向目标组注册。
    • Target.NotInUse-目标组未由任何负载均衡使用,或者目标位于未为其负载均衡启用的可用区中。
    • Target.IpUnusable-目标IP地址保留供负载均衡使用。
    • Target.InvalidState-目标处于停止或终止状态。
  • Draining如果目标状态为draining,则原因码可以为以下值:
    • Target.DeregistrationInProgress-目标正在注销中,并且注销延迟时间尚未到期。
  • Unavailable:如果目标状态不可用,原因码可以是以下值:
    • Target.HealthCheckDisabled-为目标组禁用了健康状况检查。

Applications Load Balancer - 配置

参数 描述
配置细节
Load Balancer ID 负载均衡的ID。
Region 在其中配置了负载均衡的AWS区域。
State 负载均衡的状态- initial | healthy | unhealthy | unused | draining | unavailable
Type 负载均衡的类型-应用程序或网络。
DNS name 负载均衡的公共DNS名称。
Scheme 面向互联网或内部。面向Internet的负载均衡可以通过Internet路由来自客户端的请求。内部负载均衡只能路由来自包含负载均衡VPC访问权限的客户端的请求。 
IP address type 子网用于负载均衡的IP地址的类型。 
VPC ID 负载均衡的VPC的ID。
Availability zones 负载均衡的可用区。
Security groups 负载均衡的安全组的ID。
Creation time 负载均衡的创建日期和时间。

网络负载均衡指标

网络负载均衡-概述

参数 描述
TCP连接
Active Connections 从客户端到负载均衡以及从负载均衡到目标的活动并发TCP连接总数。 
New Connections 从客户端到负载均衡以及从负载均衡到目标建立的新TCP连接总数。
TLS连接
Active TLS Connections 从客户端到目标的并发TLS连接总数。
New TLS Connections 在该时间段内从客户端到目标建立的新TLS连接总数。 
数据处理(TCP)
Data processed (TCP) 负载均衡处理的字节总数。
Data processing rate (TCP) 负载均衡每分钟处理的字节率。
消耗的LB容量单位
Consumed Capacity Units 负载均衡使用的负载均衡容量单位(LCU)的数量。您需要消耗每小时使用的LCU数量。

网络负载均衡-错误

参数 描述
连接错误
Client TLS Negotiation Errors 客户端和TLS侦听器之间协商期间失败的TLS握手总数。 
Target TLS Negotiation Errors TLS侦听器与目标之间协商期间失败的TLS握手总数。 
重置数据包计数
Client Reset Packets 从客户端发送到目标的重置(RST)数据包总数。
Load Balancer Reset Packets 负载均衡生成的重置(RST)数据包总数。
Target Reset Packets 从目标发送到客户端的重置(RST)数据包总数。 

网络负载均衡-目标组

参数 描述
TARGET GROUPS DATA
Target Group 目标组的名称。
Port 用于与目标连接的端口。
Protocol 与目标连接所使用的协议。
Target type 向该目标组注册目标时必须指定的目标类型。
Timeout (seconds) 目标没有响应的时间(以秒为单位)。
Interval (seconds) 单个目标的健康状况检查之间的大概时间(以秒为单位)。 
Healthy Hosts 被认为是健康目标的数量。 
Unhealthy Hosts 被认为不健康的目标数量。

网络负载均衡-目标

参数 描述
目标详细信息
Target ID 目标的ID。如果目标组的目标类型是instance,请指定一个实例ID。
Target Group 目标所映射到的目标组的名称。
Port 目标正在侦听的端口。
Status 目标的状态-initial | healthy | unhealthy | unused | draining | unavailable
Reason
  • Healthy:如果目标状态为健康,则不提供原因码。
  • Initial如果目标状态为初始状态,则原因码可以是以下值之一:
    • Elb.RegistrationInProgress-目标正在向负载均衡注册。
    • Elb.InitialHealthChecking-负载均衡仍在向目标发送确定其健康状况所需的最小健康状况检查数。
  • Unhealthy:如果目标状态不健康状况,原因码可以是以下值之一:
    • Target.ResponseCodeMismatch-健康状况检查未返回预期的HTTP代码。
    • Target.Timeout-健康状况检查请求超时。
    • Target.FailedHealthChecks-由于与目标的连接超时,目标响应格式错误或目标由于未知原因而无法通过健康状况检查,因此健康状况检查失败。
    • Elb.InternalError-健康状况检查由于内部错误而失败。
  • Unused:如果目标状态未使用,则原因码可以是以下值之一:
    • Target.NotRegistered-目标未向目标组注册。
    • Target.NotInUse-目标组未由任何负载均衡使用,或者目标位于未为其负载均衡启用的可用区中。
    • Target.IpUnusable-目标IP地址保留供负载均衡使用。
    • Target.InvalidState-目标处于停止或终止状态。
  • Draining如果目标状态为Draining,则原因码可以为以下值:
    • Target.DeregistrationInProgress-目标正在注销中,并且注销延迟时间尚未到期。
  • Unavailable:如果目标状态不可用,原因码可以是以下值:
    • Target.HealthCheckDisabled-为目标组禁用了健康状况检查。

Network Load Balancer - 配置

参数 描述
配置细节

Load Balancer ID
负载均衡的ID。
Region 在其中配置了负载均衡的AWS区域。
State 负载均衡的状态-active | provisioning | active_impaired | failed.
Type 负载均衡的类型-应用程序或网络。
DNS name 负载均衡的公共DNS名称。
Scheme 面向互联网或内部。面向Internet的负载均衡可以通过Internet路由来自客户端的请求。内部负载均衡只能路由来自包含负载均衡VPC访问权限的客户端的请求。
IP address type 子网用于负载均衡的IP地址的类型。
VPC ID 负载均衡的VPC的ID。
Availability zones 负载均衡的可用区。
Creation time 负载均衡的创建日期和时间。