Cloudwatch 输出插件

编辑

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

获取帮助

编辑

如有任何关于插件的问题,请在 Discuss 论坛中发帖。如发现错误或有功能请求,请在 Github 中提交问题。如需查看 Elastic 支持的插件列表,请参阅 Elastic 支持矩阵

描述

编辑

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

概要

编辑

此插件旨在用于 Logstash indexer 代理(但这并非唯一方法,请参见下文)。在预期场景中,一个 Cloudwatch 输出插件配置在 Logstash indexer 节点上,仅需 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 字段的事件使用的默认维度 [名称,值,……]。

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 indexer 上的一个输出插件可以服务所有事件(当然,这些事件在 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

在强制提前 timeframe 时间表调用 CloudWatch API 之前要排队的事件数。将其设置为要发送到 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 密钥访问密钥

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选项

常用选项

编辑

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

设置 输入类型 必需

编解码器

编解码器

启用指标

布尔值

ID

字符串

codec

编辑

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

enable_metric

编辑

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

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

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

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

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