Cloudwatch 输出插件

编辑

对于其他版本,请参阅版本化插件文档

获取帮助

编辑

有关插件的问题,请在Discuss论坛中开一个主题。对于错误或功能请求,请在Github中开一个 issue。有关 Elastic 支持的插件列表,请查阅Elastic 支持矩阵

描述

编辑

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

摘要

编辑

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

当事件通过此输出时,它们将被排队进行后台聚合和发送,默认情况下每分钟发生一次。队列具有最大大小,当它满时,聚合的统计信息将提前发送到 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 字段的事件的默认维度 [ name, value, …​ ]

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 调用只能将一个命名空间发送到 CloudWatch,因此设置不同的命名空间将增加 API 调用的数量,并且这些调用会花费资金。

field_unit

编辑
  • 值类型是字符串
  • 默认值是 "CW_unit"

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

field_value

编辑
  • 值类型是字符串
  • 默认值是 "CW_value"

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

metricname

编辑
  • 值类型是字符串
  • 此设置没有默认值。

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

namespace

编辑
  • 值类型是字符串
  • 默认值是 "Logstash"

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

proxy_uri

编辑
  • 值类型是字符串
  • 此设置没有默认值。

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

queue_size

编辑
  • 值类型是数字
  • 默认值是 10000

在强制调用 CloudWatch API 之前,要将多少个事件排队,而不是按照 timeframe 计划进行调用?将其设置为您将发送到 CloudWatch 的每个时间段的事件数,以避免额外的 API 调用。

region

编辑
  • 值可以是以下任何一个: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_key

编辑
  • 值类型是字符串
  • 此设置没有默认值。

AWS Secret Access Key

session_token

编辑
  • 值类型是字符串
  • 此设置没有默认值。

用于临时凭证的 AWS 会话令牌

timeframe

编辑

常量 aggregate_key 成员 单位 向 CloudWatch 发送数据的频率。这不会影响事件时间戳,事件将始终将其实际时间戳(精确到分钟)发送到 CloudWatch。

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

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

unit

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

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

use_aws_bundled_ca

编辑

使用 AWS SDK 随附的捆绑 CA 证书来验证 SSL 对等证书。对于默认证书不可用的情况,例如 Windows,您可以将其设置为 true

value

编辑

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

常用选项

编辑

所有输出插件都支持这些配置选项

设置 输入类型 必需

codec

codec

enable_metric

布尔值

id

字符串

codec

编辑

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

enable_metric

编辑

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

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

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

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

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