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 密钥访问密钥

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 类。我们应该要求(true)还是禁用(false)使用 SSL 与 AWS API 通信?Ruby 的 AWS SDK 默认使用 SSL,因此我们保留了这一点

常用选项

编辑

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

设置 输入类型 必需

add_field

哈希表

codec

codec

enable_metric

布尔值

id

字符串

tags

数组

type

字符串

add_field

编辑

向事件添加字段

codec

编辑

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

enable_metric

编辑

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

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

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

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

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

tags

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

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

这可以帮助以后进行处理。

type

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

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

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

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

如果您尝试为已经存在类型的事件设置类型(例如,当您从发货方发送事件到索引器时),则新的输入不会覆盖现有类型。在发货方设置的类型会一直与该事件关联,即使发送到其他 Logstash 服务器也是如此。