AWS 模块

编辑

此模块定期使用 GetMetricData API 从 AWS CloudWatch 获取监控指标,用于 AWS 服务。

默认情况下,所有指标都已启用。

此模块将生成 CloudWatch API 请求的额外 AWS 费用。请参阅 AWS API 请求 以了解更多详细信息。

模块特定配置说明

编辑
  • AWS 凭证

aws 模块需要 AWS 凭证配置才能进行 AWS API 调用。用户可以使用 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 和/或 AWS_SESSION_TOKEN,或者使用共享的 AWS 凭证文件。请参阅 AWS 凭证选项 以了解更多详细信息。

如果使用 AWS CloudWatch 跨账户可观察性,则应在此处使用监控账户的凭证,Metricbeat 将收集监控账户和链接的源账户的所有指标。

  • 区域

此模块还接受可选配置 regions 以指定要从中查询指标的 AWS 区域。如果配置文件中未设置 regions 参数,则默认情况下,aws 模块将从所有可用的 AWS 区域查询指标。如果指定了 endpoint,则 regions 成为必需的配置参数。

  • 延迟

某些 AWS 服务将监控指标发送到 CloudWatch,其处理延迟大于 Metricbeat 收集周期。这会导致数据点丢失或无法被 Metricbeat 收集。在这种情况下,请指定 latency 参数,以便将收集开始时间和结束时间根据给定的延迟量进行偏移。

  • 数据粒度

AWS CloudWatch 允许通过在查询指标时设置“Period”来定义返回数据点的粒度。请参阅 MetricDataQuery 参数 以获取更多信息。

默认情况下,metricbeat 将查询 CloudWatch 并将“Period”设置为 Metricbeat 收集周期。如果您希望为“Period”设置自定义值,请指定 data_granularity 参数。通过同时设置 perioddata_granularity,您可以分别控制希望多频繁地收集指标以及指标必须有多细粒度。

如果您担心通过 Metricbeat 发出的 CloudWatch API 调用产生的成本,并愿意以检索指标的额外延迟作为权衡,您可以考虑设置 data_granularity 并增加 Metricbeat 收集周期。例如,将 data_granularity 设置为 period 的当前值,并将 period 的值加倍,可能会导致 GetMetricData API 调用成本节省 50%。

  • 端点

大多数 AWS 服务提供可用于发出请求的区域端点。区域端点的通用语法为 protocol://service-code.region-code.endpoint-code。某些服务(例如 IAM)不支持区域。这些服务的端点不包含区域。在 aws 模块中,endpoint 配置用于设置 endpoint-code 部分,例如 amazonaws.comamazonaws.com.cnc2s.ic.govsc2s.sgov.gov

如果指定了端点,则 regions 配置变为必需。

  • 包含链接账户

include_linked_accounts 参数用于启用包含与主监控账户链接的不同账户的指标。通过将此参数设置为 true,用户可以收集通过 CloudWatch 跨账户可观察性 链接的多个 AWS 账户的指标。默认情况下,include_linked_accounts 参数设置为 true,这意味着收集主监控账户和所有链接账户的指标。设置为 false 时,此参数允许 CloudWatch 服务仅从监控账户检索指标。

如果需要从特定链接账户收集指标,请使用 owning_account 配置。

注意: 用户应确保正确设置必要的 IAM 角色和策略,以将监控账户和源账户链接在一起。请参阅 将监控账户与源账户链接 以了解更多详细信息。

  • 拥有账户

此配置与 include_linked_accounts 配置一起使用,并允许从特定链接账户收集指标。此配置接受有效的账户 ID,并在内部将其映射到 ListMetrics APIOwningAccount 参数。

请注意,应启用 include_linked_accounts(这是默认值)才能使用此参数。

include_linked_accounts: true
owning_account: 111111111111
  • 标签过滤器

要过滤的标签。如果在配置中提供了标签,则仅收集与过滤器匹配标签键和标签值的资源的指标。例如,如果在 AWS/ELB 命名空间下将标签参数指定为 Organization=Engineering,则仅收集标签名称等于 Organization 且标签值等于 Engineering 的 ELB 的指标。为了过滤相同键的不同值,请将值添加到值数组中(请参阅示例)

注意:标签过滤仅适用于在度量集特定配置中指定了 resource_type 的度量集。

- module: aws
  period: 5m
  endpoint: amazonaws.com.cn
  regions: cn-north-1
  metricsets:
    - ec2
  tags_filter:
    - key: "Organization"
      value: ["Engineering", "Product"]
  • fips_enabled

强制使用 FIPS 服务端点。有关更多信息,请参阅 AWS 凭证选项

- module: aws
  period: 5m
  fips_enabled: true
  regions:
    - us-east-1
    - us-east-2
    - us-west-1
    - us-west-2
  metricsets:
    - ec2

aws 模块附带预定义的仪表板。例如

metricbeat aws overview

度量集

编辑

目前,我们在 aws 模块中具有 billingcloudwatchdynamodbebsec2elbkinesis lambdamtestnatgatewayrdss3_daily_storages3_requestsnssqstransitgatewayusagevpn 度量集。

billing

编辑

计费指标数据包括 AWS 账户中每个服务的预估费用以及 AWS 账户的预估总费用。预估费用每天计算并发送几次到 CloudWatch。因此,aws 模块配置中的 period 设置为 12h

计费度量集附带预定义的仪表板

metricbeat aws billing overview

cloudwatch

编辑

此度量集允许用户使用任何给定的命名空间或具有给定周期的特定实例从 AWS CloudWatch 查询指标。请参阅 发布 CloudWatch 指标的 AWS 服务 以获取发布指标到 CloudWatch 的 AWS 服务列表。

dynamodb

编辑

DynamoDB 定期将指标发送到 CloudWatch,以便更好地监控 Web 应用程序或服务的性能。

dynamodb 度量集附带预定义的仪表板

metricbeat aws dynamodb overview

对于 AWS EBS 卷中的基本监控,数据以 5 分钟为周期自动提供,无需付费。这包括 EBS 支持的实例的根设备卷的数据。用户还可以为预置 IOPS SSD (io1) 卷启用详细监控,以自动将 1 分钟指标发送到 CloudWatch。aws 模块配置中的默认周期对于 ebs 度量集设置为 5m

ebs 度量集附带预定义的仪表板

metricbeat aws ebs overview

ec2

编辑

默认情况下,Amazon EC2 每 5 分钟将指标数据发送到 CloudWatch。使用此基本监控,aws 模块配置中的 period 应大于或等于 300s。如果将 period 设置为小于 300s,则会多次收集相同的 CloudWatch 指标,这会导致额外费用,而不会获得更细粒度的指标。例如,在 US East (N. Virginia) 区域,使用 GetMetricData 请求 1000 个指标的费用为 0.01 美元。有关更多详细信息,请参阅 AWS CloudWatch 定价。为了避免不必要的费用,建议将 period 设置为 300s300s 的倍数,例如 600s900s。对于更细粒度的监控数据,您可以在实例上启用详细监控以每分钟获取指标。有关如何启用详细监控的说明,请参阅 启用详细监控。启用详细监控后,aws 模块配置中的 period 可以是任何大于 60s 的数字。由于 AWS 每 1 分钟将指标数据发送到 CloudWatch,因此将 Metricbeat 模块 period 设置为小于 60s 会导致额外的 API 请求,这意味着 AWS 上的额外费用。为了避免不必要的费用,建议将 period 设置为 60s60s 的倍数,例如 120s180s

ec2 指标集带有一个预定义的仪表板

metricbeat aws ec2 overview

elb 指标集从经典负载均衡器、应用程序负载均衡器和网络负载均衡器收集 CloudWatch 指标。

只有当请求流经负载均衡器时,这三种弹性负载均衡器才会向 Cloudwatch 报告指标。如果请求流经负载均衡器,弹性负载均衡会以 60 秒的间隔测量并发送其指标。如果没有请求流经负载均衡器或某个指标没有数据,则不会报告该指标。因此,aws 模块配置中的 period 设置为 1m

elb 指标集带有一个预定义的仪表板

metricbeat aws elb overview

lambda

编辑

当调用完成时,Lambda 会为该调用发送一组指标到 CloudWatch。aws 模块配置中的默认周期对于 lambda 指标集设置为 5m。lambda 指标集带有一个预定义的仪表板

metricbeat aws lambda overview

natgateway

编辑

CloudWatch 从 NAT 网关收集信息并创建可读的、近乎实时的指标。此指标集使用户能够从 CloudWatch 收集这些指标以监控和排除其 NAT 网关故障。NAT 网关指标数据以 1 分钟的间隔提供,因此,建议 natgateway 指标集的 period1m1m 的倍数。

建议 rds 指标集的 period60s60s 的倍数,因为 Amazon RDS 每分钟将指标和维度发送到 Amazon CloudWatch。

rds 指标集带有一个预定义的仪表板

metricbeat aws rds overview

s3_daily_storage

编辑

S3 存储桶的每日存储指标每天报告一次,无需额外费用。由于它们是每日指标,因此建议 s3_daily_storage 指标集的 period86400s86400s 的倍数。

s3_request

编辑

请求指标以 1 分钟的间隔提供,并收取额外费用。s3_request 指标集将提供更细粒度的数据来跟踪 S3 存储桶的使用情况。s3_request 指标集的 period 可以设置为 60s60s 的倍数。但由于查询这些指标会产生额外费用,因此建议将 period 设置为 86400s。用户始终可以将其调整到他们想要的粒度。默认情况下,S3 存储桶未启用请求指标。有关如何为每个 S3 存储桶启用请求指标的说明,请参阅 如何为 S3 配置请求指标

s3_daily_storage 和 s3_request 指标集带有一个预定义的组合仪表板

metricbeat aws s3 overview

Amazon SQS 队列的 CloudWatch 指标会自动收集并每 5 分钟推送到 CloudWatch 一次,建议 sqs 指标集的 period300s300s 的倍数。

sqs 指标集带有一个预定义的仪表板

metricbeat aws sqs overview

transitgateway

编辑

只有当请求流经传输网关时,Amazon VPC 才会向 CloudWatch 报告指标。如果请求流经传输网关,Amazon VPC 会以 60 秒的间隔测量并发送其指标。transitgateway 指标集的 period 建议设置为 1m1m 的倍数。

usage

编辑

CloudWatch 收集跟踪某些 AWS 资源使用情况的指标。这些指标对应于 AWS 服务配额。跟踪这些指标可以帮助主动管理配额。服务配额使用情况指标位于 AWS/Usage 命名空间中,并且每分钟收集一次。因此,aws 模块配置中 usage 指标集的 period 设置为 1m

usage 指标集带有一个预定义的仪表板

metricbeat aws usage overview

CloudWatch 收集并处理来自 VPN 服务的原始数据,将其转换为可读的、近乎实时的指标,以便用户更好地了解其 Web 应用程序和服务的性能。

AWS API 请求计数

编辑

本节记录了每个指标集在 aws 模块中调用的 AWS API。这将有助于用户估算使用 aws 模块的成本。

注意:某些 AWS API 需要分页,例如 ListMetrics 和 GetMetricData。计数值取决于结果的数量。

ListMetrics 最大页面大小:500,基于 AWS API ListMetrics

GetMetricData 最大页面大小:100,基于 AWS API GetMetricData

AWS API 名称

AWS API 计数

频率

IAM ListAccountAliases

1

启动时一次

STS GetCallerIdentity

1

启动时一次

EC2 DescribeRegions

1

启动时一次

CloudWatch ListMetrics,未在配置中指定命名空间

结果总数 / ListMetrics 最大页面大小

每个区域每个收集周期

CloudWatch ListMetrics,在配置中指定特定命名空间

结果总数 / ListMetrics 最大页面大小 * 唯一命名空间的数量

每个区域每个收集周期

CloudWatch GetMetricData

结果总数 / GetMetricData 最大页面大小

每个区域每个命名空间每个收集周期

billingebselbsnsusagelambdacloudwatch 指标集相同。

AWS 凭证配置

编辑

要配置 AWS 凭证,可以将凭证放入 Metricbeat 配置中,也可以使用共享凭证文件,如下例所示。

配置参数

编辑
  • access_key_id:访问密钥的第一部分。
  • secret_access_key:访问密钥的第二部分。
  • session_token:使用临时安全凭证时需要。
  • credential_profile_name:共享凭证文件中的配置文件名称。
  • shared_credential_file:共享凭证文件的目录。
  • role_arn:要假设的 AWS IAM 角色。
  • external_id:在假设另一个帐户中的角色时使用的外部 ID,请参阅 AWS 文档中有关使用外部 ID 的信息
  • proxy_url:用于连接到 AWS Web 服务的代理的 URL。语法为 http(s)://<IP/Hostname>:<port>
  • fips_enabled:启用此选项指示 Metricbeat 使用服务的 FIPS 端点。Metricbeat 使用的所有服务都与 FIPS 兼容,除了 tagging 之外,但只有某些区域与 FIPS 兼容。有关 FIPS 端点和区域的完整列表,请参阅 https://aws.amazon.com/compliance/fips/ 或相应的服务页面,https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html
  • ssl:这指定了 SSL/TLS 配置。如果缺少 ssl 部分,则主机 CA 用于 HTTPS 连接。有关更多信息,请参阅 SSL
  • default_region:如果没有设置其他区域,则查询的默认区域。大多数 AWS 服务提供可用于发出请求的区域端点。某些服务(例如 IAM)不支持区域。如果未通过任何其他方式(环境变量、凭证或实例配置文件)提供区域,则将使用此处设置的值。
  • assume_role.duration:请求的 assume role 会话的持续时间。未设置时默认为 15m。根据您的最大会话持续时间策略,AWS 允许的最大会话持续时间在 1 小时到 12 小时之间。
  • assume_role.expiry_window:expiry_window 允许在会话过期前刷新会话。这有助于防止过期的令牌导致请求因 ExpiredTokenException 而失败。

支持的格式

编辑

本节中的示例指的是 Metricbeat,但无论使用哪个 Beat,用于对 AWS 进行身份验证的凭证选项都是相同的。

  • 使用 access_key_idsecret_access_key 和/或 session_token

用户可以将凭证放入 Metricbeat 模块配置中,也可以使用环境变量 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 和/或 AWS_SESSION_TOKEN 代替。

如果在 Docker 上运行,则应将这些环境变量作为 Docker 命令的一部分添加。例如,使用 Metricbeat

$ docker run -e AWS_ACCESS_KEY_ID=abcd -e AWS_SECRET_ACCESS_KEY=abcd -d --name=metricbeat --user=root --volume="$(pwd)/metricbeat.aws.yml:/usr/share/metricbeat/metricbeat.yml:ro" docker.elastic.co/beats/metricbeat:7.11.1 metricbeat -e -E cloud.auth=elastic:1234 -E cloud.id=test-aws:1234

示例 metricbeat.aws.yml 如下所示

metricbeat.modules:
- module: aws
  period: 5m
  access_key_id: ${AWS_ACCESS_KEY_ID}
  secret_access_key: ${AWS_SECRET_ACCESS_KEY}
  session_token: ${AWS_SESSION_TOKEN}
  metricsets:
    - ec2

环境变量也可以通过文件添加。例如

$ cat env.list
AWS_ACCESS_KEY_ID=abcd
AWS_SECRET_ACCESS_KEY=abcd

$ docker run --env-file env.list -d --name=metricbeat --user=root --volume="$(pwd)/metricbeat.aws.yml:/usr/share/metricbeat/metricbeat.yml:ro" docker.elastic.co/beats/metricbeat:7.11.1 metricbeat -e -E cloud.auth=elastic:1234 -E cloud.id=test-aws:1234
  • 使用 credential_profile_name 和/或 shared_credential_file

如果 access_key_idsecret_access_keyrole_arn 均未给出,则 metricbeat 将检查 credential_profile_name。如果您对不同的工具或应用程序使用不同的凭证,则可以使用配置文件在同一配置文件中配置多个访问密钥。如果没有给出 credential_profile_name,则将使用默认配置文件。

shared_credential_file 可选,用于指定共享凭证文件的目录。如果为空,将使用默认目录。在 Windows 中,共享凭证文件位于 C:\Users\<yourUserName>\.aws\credentials。对于 Linux、macOS 或 Unix,该文件位于 ~/.aws/credentials。以服务形式运行时,主目录路径取决于管理服务的用户,因此可以使用 shared_credential_file 参数避免歧义。有关更多详细信息,请参阅 创建共享凭证文件

  • 使用 role_arn

role_arn 用于指定要为生成临时凭证而假定的 AWS IAM 角色。如果给出 role_arn,metricbeat 将检查是否给出了访问密钥。如果没有,metricbeat 将检查凭证配置文件名称。如果两者都没有给出,则将使用默认凭证配置文件。请确保在凭证配置文件或访问密钥下都提供了凭证。

如果在 Docker 上运行,则需要通过卷挂载提供凭证文件。例如,使用 Metricbeat

docker run -d --name=metricbeat --user=root --volume="$(pwd)/metricbeat.aws.yml:/usr/share/metricbeat/metricbeat.yml:ro" --volume="/Users/foo/.aws/credentials:/usr/share/metricbeat/credentials:ro" docker.elastic.co/beats/metricbeat:7.11.1 metricbeat -e -E cloud.auth=elastic:1234 -E cloud.id=test-aws:1234

示例 metricbeat.aws.yml 如下所示

metricbeat.modules:
- module: aws
  period: 5m
  credential_profile_name: elastic-beats
  shared_credential_file: /usr/share/metricbeat/credentials
  metricsets:
    - ec2
  • 在 Metricbeat 配置中使用 AWS 凭证

    metricbeat.modules:
    - module: aws
      period: 300s
      metricsets:
        - ec2
      access_key_id: '<access_key_id>'
      secret_access_key: '<secret_access_key>'
      session_token: '<session_token>'

    metricbeat.modules:
    - module: aws
      period: 300s
      metricsets:
        - ec2
      access_key_id: '${AWS_ACCESS_KEY_ID:""}'
      secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}'
      session_token: '${AWS_SESSION_TOKEN:""}'
  • 使用 IAM 角色 ARN

    metricbeat.modules:
    - module: aws
      period: 300s
      metricsets:
        - ec2
      role_arn: arn:aws:iam::123456789012:role/test-mb
  • 使用共享的 AWS 凭证文件

    metricbeat.modules:
    - module: aws
      period: 300s
      metricsets:
        - ec2
      credential_profile_name: test-mb
  • 使用共享的 AWS 凭证文件和 IAM 角色 ARN

    metricbeat.modules:
    - module: aws
      period: 5m
      role_arn: arn:aws:iam::123456789012:role/test-mb
      shared_credential_file: /Users/mb/.aws/credentials_backup
      credential_profile_name: test
      metricsets:
        - ec2

AWS 凭证类型

编辑

可以使用两种不同类型的 AWS 凭证:访问密钥和临时安全凭证。

  • 访问密钥

AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 是访问密钥的两个部分。它们是 IAM 用户或 AWS 账户根用户的长期凭证。有关更多详细信息,请参阅 AWS 访问密钥和密钥 ID

  • IAM 角色 ARN

IAM 角色是在您的账户中可以创建的 IAM 身份,它具有特定权限,这些权限决定了该身份在 AWS 中可以做什么和不能做什么。角色没有与其关联的标准长期凭证,例如密码或访问密钥。相反,当您承担某个角色时,它会为您角色会话提供临时安全凭证。可以使用 IAM 角色 Amazon 资源名称 (ARN) 指定要为生成临时凭证而假定的 AWS IAM 角色。有关更多详细信息,请参阅 AssumeRole API 文档

以下是使用 AWS CLI 为 Metricbeat 设置 IAM 角色的步骤。请将 123456789012 替换为您自己的账户 ID。

步骤 1. 创建 example-policy.json 文件以包含所有权限

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "sqs:ReceiveMessage"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "sqs:ChangeMessageVisibility",
            "Resource": "arn:aws:sqs:us-east-1:123456789012:test-fb-ks"
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": "sqs:DeleteMessage",
            "Resource": "arn:aws:sqs:us-east-1:123456789012:test-fb-ks"
        },
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": [
                "sts:AssumeRole",
                "sqs:ListQueues",
                "tag:GetResources",
                "ec2:DescribeInstances",
                "cloudwatch:GetMetricData",
                "ec2:DescribeRegions",
                "iam:ListAccountAliases",
                "sts:GetCallerIdentity",
                "cloudwatch:ListMetrics"
            ],
            "Resource": "*"
        }
    ]
}

步骤 2. 使用 aws iam create-policy 命令创建 IAM 策略

$ aws iam create-policy --policy-name example-policy --policy-document file://example-policy.json

步骤 3. 创建 JSON 文件 example-role-trust-policy.json,该文件定义 IAM 角色的信任关系

{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Principal": { "AWS": "arn:aws:iam::123456789012:root" },
        "Action": "sts:AssumeRole"
    }
}

步骤 4. 创建 IAM 角色并附加策略

$ aws iam create-role --role-name example-role --assume-role-policy-document file://example-role-trust-policy.json
$ aws iam attach-role-policy --role-name example-role --policy-arn "arn:aws:iam::123456789012:policy/example-policy"

完成这些步骤后,可以在 Metricbeat aws 模块中使用 IAM 角色 ARN 进行身份验证。

  • 临时安全凭证

临时安全凭证具有有限的生命周期,并且由访问密钥 ID、密钥 ID 和安全令牌组成,这些令牌通常由 GetSessionToken 返回。启用 MFA 的 IAM 用户在调用 GetSessionToken 时需要提交 MFA 代码。有关更多详细信息,请参阅 临时安全凭证。可以使用 sts get-session-token AWS CLI 生成临时凭证。例如,使用启用 MFA 的

aws> sts get-session-token --serial-number arn:aws:iam::1234:mfa/[email protected] --token-code 456789 --duration-seconds 129600

由于临时安全凭证是短期凭证,因此在它们过期后,用户需要生成新的凭证并使用新凭证修改 aws.yml 配置文件。除非为 Metricbeat 启用了 实时重新加载 功能,否则用户需要在更新配置文件后手动重新启动 Metricbeat 才能继续收集 Cloudwatch 指标。如果在旧凭证过期之前未在新凭证更新配置文件,则会导致数据丢失。对于 Metricbeat,我们建议用户在配置文件中使用访问密钥以启用 aws 模块,从而无需生成新的临时凭证并频繁更新配置。

IAM 策略是定义对 AWS 环境中对象的权限的实体。需要将特定权限添加到 IAM 用户的策略中,以授权 Metricbeat 收集 AWS 监控指标。有关所需权限,请参阅每个指标集下的文档。

在 EKS 上运行

编辑
  • WebIdentity 身份验证流程

请参阅文档以创建服务帐户的 IAM 角色:https://docs.aws.amazon.com/eks/latest/userguide/specify-service-account-role.html

创建 IRSA 后,您可以使用它来注释 metricbeat 服务帐户

apiVersion: v1
kind: ServiceAccount
metadata:
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::<ACCOUNT_ID>:role/<IRSA_ID>
  name: metricbeat
  namespace: kube-system
  labels:
    k8s-app: metricbeat

为了启用 WebIdentity 身份验证流程,您需要向 IRSA 添加信任关系

    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::<ACCOUNT_ID>:oidc-provider/oidc.eks.<REGION>.amazonaws.com/id/<OIDC_PROVIDER_ID>"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "oidc.eks.REGION.amazonaws.com/id/<OIDC_PROVIDER_ID>:sub": "system:serviceaccount:kube-system:metricbeat",
          "oidc.eks.REGION.amazonaws.com/id/<OIDC_PROVIDER_ID>:aud": "sts.amazonaws.com"
        }
      }
    }

在这种情况下,无需向模块配置中添加 role_arn

示例配置

AWS 模块支持在 模块中描述的标准配置选项。这是一个示例配置

metricbeat.modules:
- module: aws
  period: 300s
  credential_profile_name: test-mb
  metricsets:
    - ec2
  tags_filter:
    - key: "Organization"
      value: "Engineering"
- module: aws
  period: 300s
  credential_profile_name: test-mb
  metricsets:
    - sqs
  regions:
    - us-west-1
- module: aws
  period: 86400s
  metricsets:
    - s3_request
    - s3_daily_storage
  access_key_id: '${AWS_ACCESS_KEY_ID:""}'
  secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}'
  session_token: '${AWS_SESSION_TOKEN:""}'
- module: aws
  period: 300s
  credential_profile_name: test-mb
  metricsets:
    - cloudwatch
  include_linked_accounts: true
  # owning_account: 111111111111
  metrics:
    - namespace: AWS/EC2
      name: ["CPUUtilization"]
      dimensions:
        - name: InstanceId
          value: i-0686946e22cf9494a
    - namespace: AWS/EBS
    - namespace: AWS/ELB
      resource_type: elasticloadbalancing
      tags:
        - key: "Organization"
          value: "Engineering"
- module: aws
  period: 60s
  credential_profile_name: test-mb
  tags_filter:
    - key: "dept"
      value: "eng"
  metricsets:
    - elb
    - natgateway
    - rds
    - transitgateway
    - usage
    - vpn
- module: aws
  period: 1m
  latency: 5m
  include_linked_accounts: false
  metricsets:
    - s3_request

指标集

以下指标集可用