Sqs 输出插件

编辑

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

获取帮助

编辑

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

描述

编辑

将事件推送到 Amazon Web Services (AWS) Simple Queue Service (SQS) 队列。

SQS 是 Amazon Web Services 工具套件中的一部分,是一个简单、可扩展的队列系统。虽然 SQS 与其他排队系统(如高级消息队列协议 (AMQP))类似,但它使用自定义 API 并且需要您拥有 AWS 账户。有关 SQS 的工作原理、定价计划以及如何设置队列的更多详细信息,请参阅 http://aws.amazon.com/sqs/

"消费者" 身份必须对队列拥有以下权限

  • sqs:GetQueueUrl
  • sqs:SendMessage
  • sqs:SendMessageBatch

通常,您应该设置 IAM 策略,创建用户并将 IAM 策略应用于该用户。有关设置 AWS 身份的更多详细信息,请参阅 http://aws.amazon.com/iam/。示例策略如下所示

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sqs:GetQueueUrl",
        "sqs:SendMessage",
        "sqs:SendMessageBatch"
      ],
      "Resource": "arn:aws:sqs:us-east-1:123456789012:my-sqs-queue"
    }
  ]
}

批量发布

编辑

此输出将消息批量发布到 SQS,以优化事件吞吐量并提高性能。这是使用 [SendMessageBatch](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html) API 完成的。当批量发布消息到 SQS 时,必须遵守以下服务限制(请参阅 [Amazon SQS 中的限制](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/limits-messages.html))

  • 允许的最大单个消息大小为 256KiB。
  • 最大总有效负载大小(即批处理中所有单个消息的大小总和)也为 256KiB。

此插件将动态调整发布到 SQS 的批处理大小,以确保总有效负载大小不超过 256KiB。

此输出当前无法处理大于 256KiB 的消息。任何超过此大小的单个消息都将被丢弃。

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

aws_credentials_file

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

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

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

batch_events

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

每个批次中要发送的事件数。将其设置为 1 以禁用消息的批量发送。

endpoint

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

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

message_max_size

编辑
  • 值类型为 字节
  • 默认值为 "256KiB"

发送到 SQS 的任何消息的最大字节数。超过此大小的消息将被丢弃。请参阅 http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/limits-messages.html

proxy_uri

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

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

queue

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

目标 SQS 队列的名称。请注意,这只是队列的名称,而不是 URL 或 ARN。

queue_owner_aws_account_id

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

目标 SQS 队列的所有者账户 ID。需要在两个账户上配置 IAM 权限才能正常运行。

region

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

AWS 区域

role_arn

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

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

role_session_name

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

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

secret_access_key

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

AWS 密钥访问密钥

session_token

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

临时凭据的 AWS 会话令牌

use_aws_bundled_ca

编辑

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

通用选项

编辑

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

设置 输入类型 必填

codec

codec

enable_metric

布尔值

id

字符串

codec

编辑
  • 值类型为 codec
  • 默认值为 "json"

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

enable_metric

编辑

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

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

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

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

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