Cloudwatch 输出插件
编辑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_namespace
、CW_unit
、CW_value
和 CW_dimensions
。所有这些字段名称都可以在此输出中配置。您还可以为它们中的任何一个设置每个输出的默认值。请参阅下面的详细信息。
阅读有关 AWS CloudWatch 的更多信息,以及此输出使用的 API 端点的特定信息,PutMetricData
Cloudwatch 输出配置选项
编辑此插件支持以下配置选项以及稍后描述的通用选项。
设置 | 输入类型 | 必需 |
---|---|---|
否 |
||
否 |
||
否 |
||
否 |
||
否 |
||
否 |
||
否 |
||
否 |
||
否 |
||
否 |
||
否 |
||
否 |
||
否 |
||
字符串,以下之一 |
否 |
|
否 |
||
否 |
||
否 |
||
字符串,以下之一 |
否 |
|
否 |
||
否 |
另请参阅通用选项,以获取所有输出插件支持的选项列表。
access_key_id
编辑- 值类型是字符串
- 此设置没有默认值。
此插件使用 AWS SDK,并支持多种获取凭证的方式,将按以下顺序尝试:
- 静态配置,在 Logstash 插件配置中使用
access_key_id
和secret_access_key
参数 - 由
aws_credentials_file
指定的外部凭证文件 - 环境变量
AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
- 环境变量
AMAZON_ACCESS_KEY_ID
和AMAZON_SECRET_ACCESS_KEY
- IAM 实例配置文件(在 EC2 中运行时可用)
aws_credentials_file
编辑- 值类型是字符串
- 此设置没有默认值。
包含 AWS 凭证哈希的 YAML 文件的路径。仅当未设置 access_key_id
和 secret_access_key
时才会加载此文件。文件的内容应如下所示
:access_key_id: "12345" :secret_access_key: "54321"
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 调用的数量,并且这些调用会花费资金。
metricname
编辑- 值类型是字符串
- 此设置没有默认值。
用于不具有 CW_metricname
字段的事件的默认指标名称。注意:如果提供了此项,则所有通过此输出的事件都将被聚合并发送到 CloudWatch,因此请谨慎使用。此外,在提供此选项时,您可能还需要使用事件类型、标签和字段匹配来限制事件通过此输出
queue_size
编辑- 值类型是数字
- 默认值是
10000
在强制调用 CloudWatch API 之前,要将多少个事件排队,而不是按照 timeframe
计划进行调用?将其设置为您将发送到 CloudWatch 的每个时间段的事件数,以避免额外的 API 调用。
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
- 默认值为
"us-east-1"
AWS 区域
timeframe
编辑- 值类型是字符串
- 默认值为
"1m"
常量 aggregate_key 成员 单位 向 CloudWatch 发送数据的频率。这不会影响事件时间戳,事件将始终将其实际时间戳(精确到分钟)发送到 CloudWatch。
仅当有数据要发送时,我们才会调用 API。
有关允许值的说明,请参阅 Rufus Scheduler 文档
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
- 默认值为
"Count"
用于没有 CW_unit
字段的事件的默认单位。如果设置此选项,您可能应该同时设置“value”选项。