监控 AWS ELB
安装 Instana 代理后, AWS ELB 传感器将自动部署并安装。
负载均衡器分为三种类型,指标的获取取决于负载均衡器的类型。
负载均衡器的类型包括:
- 经典负载均衡器
- 应用程序负载均衡器
- 网络负载均衡器
传感器(数据采集)
AWS ELB 传感器会从 AWS ELB 负载均衡器中收集以下受监控的配置数据和指标:
跟踪的配置
ELB 实例详细信息
AWS ELB 传感器会跟踪以下 ELB 实例的详细信息:
- 名称
- Type
- ARN
- 状态
- DNS 名称
- 托管区域
- 方案
- 创建时间
- VPC
- IP 地址类型
- AWS 分组区域
度量
负载均衡器的指标分为总指标和按区域划分的指标。
经典负载均衡器
AWS ELB 传感器从经典负载均衡器收集以下汇总指标 :
| 名称 | 描述 |
|---|---|
| 已拒绝的连接数 | 由于负载均衡器达到其最大连接数而被拒绝的连接数。 |
| Elb 状态码 4xx 计数 | 来自负载均衡器的 HTTP 4XX 客户机错误代码的数量。 当请求的格式不正确或不完整时,生成客户机错误。 |
| Elb 状态码 5xx 计数 | 来自负载均衡器的 HTTP 5XX 服务器错误代码的数量。 此计数不包含目标生成的任何响应代码。 |
AWS ELB 传感器从 Classic Load Balancer 收集以下按区域划分的指标 :
| 名称 | 描述 |
|---|---|
| 后端连接错误数 | 负载均衡器与已注册实例之间未成功建立的连接数。 由于负载均衡器会在发生错误时重试连接,因此此计数可能会超过请求速率。 请注意,此计数还包括与运行状况检查相关的任何连接错误。 |
| 响应时间(等待时间) | HTTP 监听器:从负载均衡器将请求发送给已注册的实例,到该实例开始发送响应头之间所经过的总时间(以秒为单位)。 TCP 监听器:负载均衡器成功与已注册实例建立连接所耗费的总时间(以秒为单位)。 |
| 请求计数 | 在时间间隔内完成的请求数或建立的连接数。 |
| 状态码为 2xx, 3xx, 4xx和 5xx 的请求 | HTTP 侦听器:已注册实例生成的 HTTP 响应代码数。 此计数不包括负载均衡器生成的任何响应代码。 |
| 溢出计数 | 因浪涌队列已满而拒绝的请求总数。 |
| 激增队列长度 | 暂挂路由到正常运行的实例的请求(HTTP 侦听器)或连接(TCP 侦听器)的总数。 |
应用程序负载均衡器
AWS ELB 传感器从 Application Load Balancer 收集以下汇总指标 :
| 名称 | 描述 |
|---|---|
| 活动连接数 | 从客户机到负载均衡器以及从负载均衡器到目标的处于活动状态的并发 TCP 连接总数。 |
| 新连接数 | 从客户端到负载均衡器以及从负载均衡器到目标所建立的 TCP 新连接的总数。 |
| 已拒绝的连接数 | 由于负载均衡器达到其最大连接数而被拒绝的连接数。 |
| 已处理字节数 | 负载均衡器通过 IPv4 和 IPv6 处理的字节总数。 |
| Elb 状态码 4xx 计数 | 来自负载均衡器的 HTTP 4XX 客户机错误代码的数量。 当请求的格式不正确或不完整时,生成客户机错误。 |
| Elb 状态码 5xx 计数 | 来自负载均衡器的 HTTP 5XX 服务器错误代码的数量。 此计数不包含目标生成的任何响应代码。 |
AWS ELB 传感器从 Application Load Balancer 收集以下按区域划分的指标 :
| 名称 | 描述 |
|---|---|
| 请求计数 | 通过 IPv4 和 IPv6处理的请求数。 |
| 目标响应时间 | 由客户机启动的未建立与负载均衡器的会话的 TLS 连接数。 可能的原因包括密码或协议不匹配。 |
| 目标连接错误计数 | 负载均衡器与目标之间未成功建立的连接数。 如果目标是 Lambda 函数,那么此度量不适用。 |
| 目标 TLS 协商错误计数 | 未与目标建立会话的由负载均衡器启动的 TLS 连接数。 可能的原因包括密码或协议不匹配。 如果目标是 Lambda 函数,那么此度量不适用。 |
| 客户机 TLS 协商错误计数 | 由客户机启动的未建立与负载均衡器的会话的 TLS 连接数。 可能的原因包括密码或协议不匹配。 |
网络负载均衡器
AWS ELB 传感器从网络负载均衡器收集以下汇总指标 :
| 名称 | 描述 |
|---|---|
| 新流计数 | 在此时间段内从客户机到目标建立的新流(或连接)的总数。 |
| 已处理字节数 | 负载均衡器通过 IPv4 和 IPv6 处理的字节总数。 |
| 客户机 RST | 从客户机发送到目标的重置 (RST) 包的总数。 这些重置由客户机生成,并由负载均衡器进行转发。 |
| Elb RST | 负载均衡器生成的重置 (RST) 包的总数。 |
| 目标 RST | 从目标发送到客户机的重置 (RST) 包的总数。 这些重置由目标生成,并由负载均衡器进行转发。 |
所需许可权
cloudwatch:GetMetricDataelasticloadbalancing:DescribeLoadBalancerselasticloadbalancing:DescribeTags
配置
ELB 的度量值每 60 秒拉取一次,可以通过 <agent_install_dir>/etc/instana/configuration.yml中的代理程序配置进行更改:
com.instana.plugin.aws.elb:
cloudwatch_period: 60
要禁用对 ELB 实例的监视,请使用以下配置:
com.instana.plugin.aws.elb:
enabled: false
要启用批量发现 RDS 实例,请使用以下配置:
com.instana.plugin.aws.elb:
enable_batch_discovery: true # default false
代理配置
要将特定 AWS 传感器配置为使用代理配置,请添加以下代理程序配置设置:
com.instana.plugin.aws.elb:
proxy_host: 'example.com' # proxy host name or ip address
proxy_port: 3128 # proxy port
proxy_protocol: 'HTTP' # proxy protocol: HTTP or HTTPS
proxy_username: 'username' # OPTIONAL: proxy username
proxy_password: 'password' # OPTIONAL: proxy password
监控多个 AWS 账户
请参阅监视多个 AWS 帐户文档,以设置对同一区域中具有一个 AWS 代理程序的多个 AWS 帐户的监视。
AWS 命名配置文件方法
若要覆盖用于监控 Elastic Load Balancer 的配置文件,请使用以下配置:
com.instana.plugin.aws.elb:
profile_names:
- 'profile2'
- 'profile3'
AWS STS方法
要覆盖应该使用哪些 IAM 角色监视弹性负载均衡器,请使用以下配置:
com.instana.plugin.aws.elb:
role_arns:
- 'arn:aws:iam::<account_1_id>:role/<role_1_name>'
- 'arn:aws:iam::<account_2_id>:role/<role_2_name>'
过滤
可以定义多个标记(以逗号分隔)。 应该以 "键/值" 对的形式提供标记: 为了使配置更容易,可以定义要包含在发现中或从发现中排除的标记。 如果在两个列表中都定义了标记 (包括和排除) ,那么排除列表具有更高的优先级。 如果不需要过滤服务,那么不应该定义该配置。 并非必须定义所有值才能启用过滤。
用户能够指定传感器轮询使用 tagged-services-poll-rate 配置属性的 AWS 标记资源的频率(缺省值为 300 秒)。
要定义传感器轮询已标记资源的频率,请使用下列配置:
com.instana.plugin.aws:
tagged-services-poll-rate: 60 #default 300
要将按标记列出的服务包括到发现中,请使用以下配置:
com.instana.plugin.aws.elb:
include_tags: # Comma separated list of tags in key:value format (e.g. env:prod,env:staging)
要从发现中排除按标记提供的服务,请使用以下配置:
com.instana.plugin.aws.elb:
exclude_tags: # Comma separated list of tags in key:value format (e.g. env:dev,env:test)
缺省情况下会监视没有标记的 AWS 服务,但可以通过将 include_untagged 字段设置为 false 来排除这些服务:
com.instana.plugin.aws.elb:
include_untagged: false # True value by default
要启用批量发现以减少对 elb 的节流,请使用以下配置:
com.instana.plugin.aws:
enable_batch_discovery: true #default false