Cloudwatch 输出插件编辑

有关其他版本,请参阅 版本化插件文档

获取帮助编辑

如果您对插件有任何疑问,请在 Discuss 论坛中发帖。对于错误或功能请求,请在 Github 中创建问题。有关 Elastic 支持的插件列表,请参阅 Elastic 支持矩阵

描述编辑

此输出插件允许您将指标数据聚合并发送到 AWS CloudWatch

摘要:编辑

此插件旨在用于 Logstash 索引器代理(但这并不是唯一的方式,请参见下文)。在预期场景中,一个 Cloudwatch 输出插件配置在 Logstash 索引器节点上,仅包含 AWS API 凭据,以及可选的区域和/或命名空间。输出插件会查找事件中存在的字段,并在找到它们时使用它们来计算聚合统计信息。如果在此输出插件中设置了 metricname 选项,则通过它的所有事件都将被聚合并发送到 CloudWatch,但不建议这样做。预期用途是不在此处设置 metricname 选项,而是将 CW_metricname 字段(以及其他字段)添加到您想要发送到 CloudWatch 的事件中。

当事件通过此输出插件时,它们会被排队以进行后台聚合和发送,默认情况下每分钟进行一次。队列具有最大大小,当队列已满时,聚合统计信息将提前发送到 CloudWatch。每当发生这种情况时,都会向 Logstash 的日志写入警告消息。如果您看到此消息,则应增加 queue_size 配置选项以避免额外的 API 调用。每次我们向 CloudWatch 发送数据时,队列都会被清空。

注意:当 Logstash 停止时,队列会在被处理之前被销毁。这是 Logstash 的已知限制,希望在将来的版本中得到解决。

详细信息:编辑

有两种方法可以配置此插件,它们可以组合使用:事件字段和每个输出的默认值

事件字段配置…​ 您在输入和过滤器中向事件添加字段,此输出插件读取这些字段以聚合事件。读取的字段名称可以通过 field_* 选项进行配置。

每个输出的默认值…​ 您在此输出插件的配置中设置通用默认值,如果事件没有该选项的字段,则使用默认值。

请注意,事件字段优先于每个输出的默认值。

至少事件必须具有一个“指标名称”才能发送到 CloudWatch。这可以通过提供一个默认值或添加一个 CW_metricname 字段来实现。默认情况下,如果没有提供其他配置,除了指标名称之外,事件将根据其指标名称(默认值或来自其 CW_metricname 字段)进行计数(单位:计数,值:1)。

可以添加到事件中的其他字段以修改此插件的行为包括 CW_namespaceCW_unitCW_valueCW_dimensions。所有这些字段名称都可以在此输出插件中配置。您还可以为任何字段设置每个输出的默认值。有关详细信息,请参见下文。

详细了解 AWS CloudWatch,以及此输出插件使用的特定 API 端点 PutMetricData

Cloudwatch 输出插件配置选项编辑

此插件支持以下配置选项,以及后面描述的 通用选项

设置 输入类型 必需

access_key_id

字符串

aws_credentials_file

字符串

batch_size

数字

dimensions

哈希

field_dimensions

字符串

field_metricname

字符串

field_namespace

字符串

field_unit

字符串

field_value

字符串

metricname

字符串

namespace

字符串

proxy_uri

字符串

queue_size

数字

region

字符串,其中之一为 ["us-east-1", "us-east-2", "us-west-1", "us-west-2", "eu-central-1", "eu-west-1", "eu-west-2", "ap-southeast-1", "ap-southeast-2", "ap-northeast-1", "ap-northeast-2", "sa-east-1", "us-gov-west-1", "cn-north-1", "ap-south-1", "ca-central-1"]

secret_access_key

字符串

session_token

字符串

timeframe

字符串

unit

字符串,其中之一为 ["Seconds", "Microseconds", "Milliseconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second", "None"]

use_aws_bundled_ca

布尔值

value

字符串

另请参阅 通用选项,了解所有输出插件支持的选项列表。

 

access_key_id编辑

  • 值类型为 字符串
  • 此设置没有默认值。

此插件使用 AWS SDK 并支持多种获取凭据的方式,将按以下顺序尝试:

  1. 静态配置,使用 Logstash 插件配置中的 access_key_idsecret_access_key 参数
  2. aws_credentials_file 指定的外部凭据文件
  3. 环境变量 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
  4. 环境变量 AMAZON_ACCESS_KEY_IDAMAZON_SECRET_ACCESS_KEY
  5. IAM 实例配置文件(在 EC2 内部运行时可用)

aws_credentials_file编辑

  • 值类型为 字符串
  • 此设置没有默认值。

包含 AWS 凭据哈希的 YAML 文件的路径。仅当未设置 access_key_idsecret_access_key 时,才会加载此文件。文件内容应如下所示

    :access_key_id: "12345"
    :secret_access_key: "54321"

batch_size编辑

  • 值类型为 数字
  • 默认值为 20

一次调用 CloudWatch API 可以提供多少个数据点

dimensions编辑

  • 值类型为 哈希
  • 此设置没有默认值。

用于没有 CW_dimensions 字段的事件的默认维度 [名称,值,…]

field_dimensions编辑

  • 值类型为 字符串
  • 默认值为 "CW_dimensions"

用于在事件指标上设置维度的字段名称。如果事件中存在此处的字段名称,则必须包含一个或多个键值对的数组,例如…​ add_field => [ "CW_dimensions", "Environment", "CW_dimensions", "prod" ] 或等效地…​ add_field => [ "CW_dimensions", "Environment" ] add_field => [ "CW_dimensions", "prod" ]

field_metricname编辑

  • 值类型为 字符串
  • 默认值为 "CW_metricname"

用于在事件上设置指标名称的字段名称。此插件的作者建议在输入和过滤器中向事件添加此字段,而不是使用每个输出的默认设置,以便 Logstash 索引器上的一个输出插件可以服务所有事件(当然,这些事件在 Logstash 发货器上设置了字段)。

field_namespace编辑

  • 值类型为 字符串
  • 默认值为 "CW_namespace"

用于为每个事件设置不同命名空间的字段名称。注意:每次 API 调用只能发送一个命名空间,因此设置不同的命名空间会增加 API 调用的次数,而 API 调用会产生费用。

field_unit编辑

  • 值类型为 字符串
  • 默认值为 "CW_unit"

用于在事件指标上设置单位的字段名称

field_value编辑

  • 值类型为 字符串
  • 默认值为 "CW_value"

用于在事件指标上设置值(浮点数)的字段名称

metricname编辑

  • 值类型为 字符串
  • 此设置没有默认值。

用于没有 CW_metricname 字段的事件的默认指标名称。注意:如果提供了此选项,则通过此输出插件的所有事件都将被聚合并发送到 CloudWatch,因此请谨慎使用。此外,在提供此选项时,您可能还需要使用事件类型、标签和字段匹配来限制事件通过此输出插件。

namespaceedit

  • 值类型为 字符串
  • 默认值为 "Logstash"

用于没有 CW_namespace 字段的事件的默认命名空间

proxy_uriedit

  • 值类型为 字符串
  • 此设置没有默认值。

如果需要,代理服务器的 URI

queue_sizeedit

  • 值类型为 数字
  • 默认值为 10000

在强制调用 CloudWatch API 之前,要排队的事件数量,早于 timeframe 计划。将此设置为将发送到 CloudWatch 的每个时间段的事件数量,以避免额外的 API 调用。

regionedit

  • 值可以是以下任何一个:us-east-1us-east-2us-west-1us-west-2eu-central-1eu-west-1eu-west-2ap-southeast-1ap-southeast-2ap-northeast-1ap-northeast-2sa-east-1us-gov-west-1cn-north-1ap-south-1ca-central-1
  • 默认值为 "us-east-1"

AWS 区域

secret_access_keyedit

  • 值类型为 字符串
  • 此设置没有默认值。

AWS 密钥

session_tokenedit

  • 值类型为 字符串
  • 此设置没有默认值。

AWS 临时凭证的会话令牌

timeframeedit

常量 aggregate_key 成员 单位 多久发送一次数据到 CloudWatch。这不会影响事件时间戳,事件将始终具有其实际时间戳(精确到分钟)发送到 CloudWatch。

只有在有数据要发送时,我们才会调用 API。

有关允许值的说明,请参阅 Rufus Scheduler 文档 here

unitedit

  • 值可以是以下任何一个:SecondsMicrosecondsMillisecondsBytesKilobytesMegabytesGigabytesTerabytesBitsKilobitsMegabitsGigabitsTerabitsPercentCountBytes/SecondKilobytes/SecondMegabytes/SecondGigabytes/SecondTerabytes/SecondBits/SecondKilobits/SecondMegabits/SecondGigabits/SecondTerabits/SecondCount/SecondNone
  • 默认值为 "Count"

用于没有 CW_unit 字段的事件的默认单位。如果设置此选项,则可能需要同时设置“value”选项。

use_aws_bundled_caedit

  • 值类型为 boolean
  • 默认值为 false

使用与 AWS SDK 一起提供的捆绑 CA 证书来验证 SSL 对等证书。对于默认证书不可用(例如 Windows)的情况,可以将其设置为 true

valueedit

用于没有 CW_value 字段的事件的默认值。如果提供,则必须是可转换为浮点数的字符串,例如…“1”、“2.34”、“.5”和“0.67”。如果设置此选项,则可能需要同时设置 unit 选项。

通用选项edit

以下配置选项受所有输出插件支持

设置 输入类型 必需

codec

codec

enable_metric

布尔值

id

字符串

codecedit

  • 值类型为 codec
  • 默认值为 "plain"

用于输出数据的编解码器。输出编解码器是一种方便的方法,用于在数据离开输出之前对其进行编码,而无需在 Logstash 管道中使用单独的过滤器。

enable_metricedit

  • 值类型为 boolean
  • 默认值为 true

禁用或启用此特定插件实例的指标日志记录。默认情况下,我们会记录所有可以记录的指标,但您可以为特定插件禁用指标收集。

idedit

  • 值类型为 string
  • 此设置没有默认值。

在插件配置中添加一个唯一的 ID。如果未指定 ID,Logstash 将生成一个。强烈建议在配置中设置此 ID。当您有两个或多个相同类型的插件时,这尤其有用。例如,如果您有两个 cloudwatch 输出。在这种情况下,添加一个命名 ID 将有助于在使用监控 API 时监控 Logstash。

output {
  cloudwatch {
    id => "my_plugin_id"
  }
}

id 字段中的变量替换仅支持环境变量,不支持使用密钥存储中的值。