Cloudwatch 输入插件

编辑

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

获取帮助

编辑

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

描述

编辑

从 Amazon Web Services CloudWatch API 中拉取事件。

要使用此插件,您必须拥有一个 AWS 账户,以及以下策略

通常,您应该设置一个 IAM 策略,创建一个用户并将 IAM 策略应用于该用户。以下是 EC2 指标的示例策略

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "Stmt1444715676000",
                "Effect": "Allow",
                "Action": [
                    "cloudwatch:GetMetricStatistics",
                    "cloudwatch:ListMetrics"
                ],
                "Resource": "*"
            },
            {
                "Sid": "Stmt1444716576170",
                "Effect": "Allow",
                "Action": [
                    "ec2:DescribeInstances"
                ],
                "Resource": "*"
            }
        ]
    }

有关设置 AWS 身份的更多详细信息,请参阅 http://aws.amazon.com/iam/

配置示例

编辑
    input {
      cloudwatch {
        namespace => "AWS/EC2"
        metrics => [ "CPUUtilization" ]
        filters => { "tag:Group" => "API-Production" }
        region => "us-east-1"
      }
    }
    input {
      cloudwatch {
        namespace => "AWS/EBS"
        metrics => ["VolumeQueueLength"]
        filters => { "tag:Monitoring" => "Yes" }
        region => "us-east-1"
      }
    }
    input {
      cloudwatch {
        namespace => "AWS/RDS"
        metrics => ["CPUUtilization", "CPUCreditUsage"]
        filters => { "EngineName" => "mysql" } # Only supports EngineName, DatabaseClass and DBInstanceIdentifier
        region => "us-east-1"
      }
    }
    input {
      cloudwatch {
        namespace => "sqlserver_test2"
        metrics => [ "Memory Available Bytes"]
        filters =>  {
            InstanceId => "i-xxxxxxxxxxx"
            objectname => "Memory"
        }
        combined => true
        interval => 600
        period => 300
      }
    }

Cloudwatch 输入配置选项

编辑

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

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

 

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"

combined

编辑

对于需要组合维度(如 S3 和 SNS)的命名空间,请使用此选项。

endpoint

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

要连接的端点。默认情况下,它使用region的值构造。这在连接到 S3 兼容服务时很有用,但请注意,不能保证这些服务能与 AWS SDK 正确协同工作。

filters

编辑
  • 此设置可以是必需的或可选的。请参阅下面的注释。
  • 值类型为数组
  • 此设置没有默认值。

当命名空间为AWS/EC2时,此设置是可选的。否则,这是一个必填字段。

指定在获取资源时应用的筛选器。请遵循 AWS 约定

  • 实例:{ instance-idi-12344321 }
  • 标签:{ "tag:Environment" ⇒ "Production" }
  • 卷:{ attachment.statusattached }

每个命名空间都唯一支持某些维度。请查阅文档以确保您使用的是有效的筛选器。

interval

编辑
  • 值类型为数字
  • 默认值为900

设置查询 CloudWatch 的频率

默认值900表示每 15 分钟检查一次。将此值设置得太低(通常小于 300)会导致 CloudWatch 不返回任何指标。

metrics

编辑
  • 值类型为数组
  • 默认值为["CPUUtilization", "DiskReadOps", "DiskWriteOps", "NetworkIn", "NetworkOut"]

指定要为命名空间获取的指标。默认值是 AWS/EC2 特有的。有关其他命名空间的可用指标,请参阅 http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/aws-namespaces.html

namespace

编辑
  • 值类型为字符串
  • 默认值为"AWS/EC2"

如果未定义,LogStash 将会报错,即使未用到编解码器。要获取的指标的服务命名空间。

默认值用于 EC2 服务。有关有效值,请参阅 http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/aws-namespaces.html

period

编辑
  • 值类型为数字
  • 默认值为300

设置返回数据点的粒度。

必须至少为 60 秒,且为 60 的倍数。

proxy_uri

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

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

region

编辑
  • 值类型为字符串
  • 默认值为"us-east-1"

AWS 区域

role_arn

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

要承担的 AWS IAM 角色(如果有)。这用于生成临时凭证,通常用于跨账户访问。有关更多信息,请参阅 AssumeRole API 文档

role_session_name

编辑
  • 值类型为字符串
  • 默认值为"logstash"

承担 IAM 角色时使用的会话名称。

secret_access_key

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

AWS Secret Access Key

session_token

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

临时凭证的 AWS 会话令牌

statistics

编辑
  • 值类型为数组
  • 默认值为["SampleCount", "Average", "Minimum", "Maximum", "Sum"]

指定要为每个命名空间获取的统计信息

use_aws_bundled_ca

编辑

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

use_ssl

编辑

确保在包含此模块时需要 V1 类。require aws-sdk 将加载 v2 类。对于与 AWS API 的通信,我们应该要求 (true) 还是禁用 (false) 使用 SSL?Ruby 的 AWS SDK 默认为 SSL,因此我们保留该设置

通用选项

编辑

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

设置 输入类型 必需

add_field

哈希

codec

codec

enable_metric

布尔值

id

字符串

tags

数组

type

字符串

add_field

编辑
  • 值类型为哈希
  • 默认值为{}

向事件添加一个字段

codec

编辑

用于输入数据的编解码器。输入编解码器是在数据进入输入之前解码数据的便捷方法,无需在 Logstash 管道中使用单独的筛选器。

enable_metric

编辑

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

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

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

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

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

tags

编辑
  • 值类型为 数组
  • 此设置没有默认值。

向您的事件添加任意数量的标签。

这有助于后续处理。

type

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

向此输入处理的所有事件添加一个 type 字段。

类型主要用于过滤器激活。

类型作为事件本身的一部分存储,因此您也可以使用类型在 Kibana 中搜索它。

如果您尝试在已经有类型的事件上设置类型(例如,当您将事件从 shipper 发送到 indexer 时),则新的输入不会覆盖现有类型。在 shipper 中设置的类型会在事件的整个生命周期中保留,即使发送到另一个 Logstash 服务器也是如此。