sqs

edit
  • Version: 3.0.2
  • Released on: 2016-07-14
  • Changelog
  • Compatible: 5.1.1.1, 5.0.0, 2.4.1, 2.4.0, 2.3.4

Push events to an Amazon Web Services Simple Queue Service (SQS) queue.

SQS is a simple, scalable queue system that is part of the Amazon Web Services suite of tools.

Although SQS is similar to other queuing systems like AMQP, it uses a custom API and requires that you have an AWS account. See http://aws.amazon.com/sqs/ for more details on how SQS works, what the pricing schedule looks like and how to setup a queue.

To use this plugin, you must:

  • Have an AWS account
  • Setup an SQS queue
  • Create an identify that has access to publish messages to the queue.

The "consumer" identity must have the following permissions on the queue:

  • sqs:ChangeMessageVisibility
  • sqs:ChangeMessageVisibilityBatch
  • sqs:GetQueueAttributes
  • sqs:GetQueueUrl
  • sqs:ListQueues
  • sqs:SendMessage
  • sqs:SendMessageBatch

Typically, you should setup an IAM policy, create a user and apply the IAM policy to the user. A sample policy is as follows:

     {
       "Statement": [
         {
           "Sid": "Stmt1347986764948",
           "Action": [
             "sqs:ChangeMessageVisibility",
             "sqs:ChangeMessageVisibilityBatch",
             "sqs:GetQueueAttributes",
             "sqs:GetQueueUrl",
             "sqs:ListQueues",
             "sqs:SendMessage",
             "sqs:SendMessageBatch"
           ],
           "Effect": "Allow",
           "Resource": [
             "arn:aws:sqs:us-east-1:200850199751:Logstash"
           ]
         }
       ]
     }

See http://aws.amazon.com/iam/ for more details on setting up AWS identities.

 

Synopsis

edit

This plugin supports the following configuration options:

Required configuration options:

sqs {
    queue => ...
}

Available configuration options:

Setting Input type Required Default value

access_key_id

string

No

aws_credentials_file

string

No

batch

boolean

No

true

batch_events

number

No

10

batch_timeout

number

No

5

codec

codec

No

"plain"

enable_metric

boolean

No

true

id

string

No

proxy_uri

string

No

queue

string

Yes

region

string, one of ["us-east-1", "us-west-1", "us-west-2", "eu-central-1", "eu-west-1", "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"]

No

"us-east-1"

secret_access_key

string

No

session_token

string

No

use_ssl

boolean

No

true

workers

<<,>>

No

1

Details

edit

 

access_key_id

edit
  • Value type is string
  • There is no default value for this setting.

This plugin uses the AWS SDK and supports several ways to get credentials, which will be tried in this order:

  1. Static configuration, using access_key_id and secret_access_key params in logstash plugin config
  2. External credentials file specified by aws_credentials_file
  3. Environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
  4. Environment variables AMAZON_ACCESS_KEY_ID and AMAZON_SECRET_ACCESS_KEY
  5. IAM Instance Profile (available when running inside EC2)

aws_credentials_file

edit
  • Value type is string
  • There is no default value for this setting.

Path to YAML file containing a hash of AWS credentials. This file will only be loaded if access_key_id and secret_access_key aren’t set. The contents of the file should look like this:

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

batch

edit
  • Value type is boolean
  • Default value is true

Set to true if you want send messages to SQS in batches with batch_send from the amazon sdk

batch_events

edit
  • Value type is number
  • Default value is 10

If batch is set to true, the number of events we queue up for a batch_send.

batch_timeout

edit
  • Value type is number
  • Default value is 5

If batch is set to true, the maximum amount of time between batch_send commands when there are pending events to flush.

codec

edit
  • Value type is codec
  • Default value is "plain"

The codec used for output data. Output codecs are a convenient method for encoding your data before it leaves the output, without needing a separate filter in your Logstash pipeline.

enable_metric

edit
  • Value type is boolean
  • Default value is true

Disable or enable metric logging for this specific plugin instance by default we record all the metrics we can, but you can disable metrics collection for a specific plugin.

  • Value type is string
  • There is no default value for this setting.

Add a unique ID to the plugin instance, this ID is used for tracking information for a specific configuration of the plugin.

output {
 stdout {
   id => "ABC"
 }
}

If you don’t explicitely set this variable Logstash will generate a unique name.

proxy_uri

edit
  • Value type is string
  • There is no default value for this setting.

URI to proxy server if required

queue

edit
  • This is a required setting.
  • Value type is string
  • There is no default value for this setting.

Name of SQS queue to push messages into. Note that this is just the name of the queue, not the URL or ARN.

region

edit
  • Value can be any of: us-east-1, us-west-1, us-west-2, eu-central-1, eu-west-1, 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
  • Default value is "us-east-1"

The AWS Region

secret_access_key

edit
  • Value type is string
  • There is no default value for this setting.

The AWS Secret Access Key

session_token

edit
  • Value type is string
  • There is no default value for this setting.

The AWS Session token for temporary credential

use_ssl

edit
  • Value type is boolean
  • Default value is true

Should we require (true) or disable (false) using SSL for communicating with the AWS API The AWS SDK for Ruby defaults to SSL so we preserve that

workers

edit
  • Value type is string
  • Default value is 1

TODO remove this in Logstash 6.0 when we no longer support the :legacy type This is hacky, but it can only be herne