Sqs 输入插件

编辑

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

获取帮助

编辑

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

描述

编辑

从 Amazon Web Services 简单队列服务 (SQS) 队列中提取事件。

SQS 是一个简单、可扩展的队列系统,它是 Amazon Web Services 工具套件的一部分。

虽然 SQS 与其他排队系统(如 AMQP)类似,但它使用自定义 API,并且要求您拥有 AWS 帐户。有关 SQS 的工作原理、定价计划以及如何设置队列的更多详细信息,请参阅 http://aws.amazon.com/sqs/

要使用此插件,您必须

  • 拥有 AWS 帐户
  • 设置 SQS 队列
  • 创建具有从队列中使用消息的权限的身份。

"使用者"身份必须对队列具有以下权限

  • sqs:ChangeMessageVisibility
  • sqs:ChangeMessageVisibilityBatch
  • sqs:DeleteMessage
  • sqs:DeleteMessageBatch
  • sqs:GetQueueAttributes
  • sqs:GetQueueUrl
  • sqs:ListQueues
  • sqs:ReceiveMessage

通常,您应该设置 IAM 策略,创建一个用户并将 IAM 策略应用于该用户。示例策略如下所示

    {
      "Statement": [
        {
          "Action": [
            "sqs:ChangeMessageVisibility",
            "sqs:ChangeMessageVisibilityBatch",
            "sqs:DeleteMessage",
            "sqs:DeleteMessageBatch",
            "sqs:GetQueueAttributes",
            "sqs:GetQueueUrl",
            "sqs:ListQueues",
            "sqs:ReceiveMessage"
          ],
          "Effect": "Allow",
          "Resource": [
            "arn:aws:sqs:us-east-1:123456789012:Logstash"
          ]
        }
      ]
    }

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

Sqs 输入配置选项

编辑

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

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

 

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 内部运行时可用)

additional_settings

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

用于参数化与 SQS 连接的设置和相应值的键值对。请参阅 AWS SDK 文档 中的完整列表。示例

    input {
      sqs {
        access_key_id => "1234"
        secret_access_key => "secret"
        queue => "logstash-test-queue"
        additional_settings => {
          force_path_style => true
          follow_redirects => false
        }
      }
    }

aws_credentials_file

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

包含 AWS 凭据哈希的 YAML 文件的路径。仅当未设置 access_key_idsecret_access_key 时才会加载此文件。文件内容应如下所示

    :access_key_id: "12345"
    :secret_access_key: "54321"

endpoint

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

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

id_field

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

要在其中存储 SQS 消息 ID 的事件字段的名称

md5_field

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

要在其中存储 SQS 消息 MD5 校验和的事件字段的名称

polling_frequency

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

轮询频率,默认为 20 秒

proxy_uri

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

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

queue

编辑
  • 这是一个必填设置。
  • 值类型为 字符串
  • 此设置没有默认值。

要从中提取消息的 SQS 队列名称。请注意,这只是队列的名称,而不是 URL 或 ARN。

queue_owner_aws_account_id

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

如果您要使用具有嵌入策略的 跨账户队列,则拥有该队列的 AWS 账户的 ID。请注意,AWS SDK 仅支持数字账户 ID,不支持账户别名。

region

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

AWS 区域

role_arn

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

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

role_session_name

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

在假设 IAM 角色时使用的会话名称。

secret_access_key

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

AWS 密钥访问密钥

sent_timestamp_field

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

要在其中存储 SQS 消息发送时间戳的事件字段的名称

session_token

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

临时凭据的 AWS 会话令牌

threads

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

use_aws_bundled_ca

编辑

使用与 AWS SDK 一起提供的捆绑 CA 证书来验证 SSL 对等证书。对于默认证书不可用的情况(例如 Windows),您可以将其设置为 true

通用选项

编辑

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

设置 输入类型 必填

add_field

哈希

codec

codec

enable_metric

布尔值

id

字符串

tags

数组

type

字符串

add_field

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

向事件添加字段

codec

编辑

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

enable_metric

编辑

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

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

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

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

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

tags

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

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

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

type

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

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

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

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

如果您尝试在已经具有类型的事件上设置类型(例如,当您从发货器发送事件到索引器时),则新的输入不会覆盖现有的类型。在发货器处设置的类型会一直保留在该事件中,即使发送到另一个 Logstash 服务器也是如此。