Cloudwatch 输出插件
编辑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_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 调用只能发送一个命名空间,因此设置不同的命名空间会增加 API 调用的次数,而 API 调用会产生费用。
metricname
编辑
- 值类型为 字符串
- 此设置没有默认值。
用于没有 CW_metricname
字段的事件的默认指标名称。注意:如果提供了此选项,则通过此输出插件的所有事件都将被聚合并发送到 CloudWatch,因此请谨慎使用。此外,在提供此选项时,您可能还需要使用事件类型、标签和字段匹配来限制事件通过此输出插件。
queue_size
edit
- 值类型为 数字
- 默认值为
10000
在强制调用 CloudWatch API 之前,要排队的事件数量,早于 timeframe
计划。将此设置为将发送到 CloudWatch 的每个时间段的事件数量,以避免额外的 API 调用。
region
edit
- 值可以是以下任何一个:
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
edit
- 值类型为 字符串
- 默认值为
"1m"
常量 aggregate_key 成员 单位 多久发送一次数据到 CloudWatch。这不会影响事件时间戳,事件将始终具有其实际时间戳(精确到分钟)发送到 CloudWatch。
只有在有数据要发送时,我们才会调用 API。
有关允许值的说明,请参阅 Rufus Scheduler 文档 here
unit
edit
- 值可以是以下任何一个:
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”选项。