elasticsearch - Windows Logstash输出到具有IAM EC2角色 “Unable to access SQS queue”的AWS SQS

标签 elasticsearch windows-server-2008 logstash amazon-sqs amazon-iam

我觉得我在这里丢失了一些东西,因为Interwebs上似乎没有人有任何问题。我有一个Windows Server 2008 R2 EC2实例设置,该实例设置带有允许sqs:SendMessage的IAM角色。我使用AWS CLI和命令aws sqs send-message在命令行上成功发送了一条消息。当我尝试使用Logstash-1.4.2时,出现以下错误:

Unable to access SQS queue 'Dev-ELK-LogstashBuffer': The specified queue does not exist or you do not have access to it. {:level=>:error}
Failed to flush outgoing items {:outgoing_count=>1, :exception=>#<NoMethodError: undefined method `batch_send' for nil:NilClass>, :backtrace=>
["C:/logstash/logstash-1.4.2/lib/logstash/outputs/sqs.rb:131:in `flush'", 
"C:/logstash/logstash-1.4.2/vendor/bundle/jruby/1.9/gems/stud-0.0.17/lib/stud/buffer.rb:219:in `buffer_flush'", 
"org/jruby/RubyHash.java:1339:in `each'", 
"C:/logstash/logstash-1.4.2/vendor/bundle/jruby/1.9/gems/stud-0.0.17/lib/stud/buffer.rb:216:in `buffer_flush'", 
"C:/logstash/logstash-1.4.2/vendor/bundle/jruby/1.9/gems/stud-0.0.17/lib/stud/buffer.rb:159:in `buffer_receive'", 
"C:/logstash/logstash-1.4.2/lib/logstash/outputs/sqs.rb:123:in `receive'", 
"C:/logstash/logstash-1.4.2/lib/logstash/outputs/base.rb:86:in `handle'", 
"(eval):129:in `initialize'", 
"org/jruby/RubyProc.java:271:in `call'", 
"C:/logstash/logstash-1.4.2/lib/logstash/pipeline.rb:266:in `output'", 
"C:/logstash/logstash-1.4.2/lib/logstash/pipeline.rb:225:in `outputworker'", 
"C:/logstash/logstash-1.4.2/lib/logstash/pipeline.rb:152:in `start_outputs'"], 
:level=>:warn}

这是我的logstash输出配置:
output {
    sqs {
        queue => "Dev-ELK-LogstashBuffer"
        region  => "us-west-2"
        use_ssl => true
    }

    stdout { codec => rubydebug }
}

我能够直接使用elasticsearch输出,但是尝试在服务器和elasticsearch集群之间添加消息队列缓冲区。

谢谢!

最佳答案

正确的IAM政策:

{
    "Statement":[
        {
            "Resource": [
                "arn:aws:sqs:us-west-2:1111111:Dev-ELK-LogstashBuffer"
            ],
            "Action":[
                "sqs:SendMessage",
                "sqs:GetQueueAttributes",
                "sqs:GetQueueUrl",
                "sqs:ListQueues",
                "sqs:ChangeMessageVisibility"
            ],
            "Effect":"Allow"
        }
    ],
    "Version":"2012-10-17"
}

关于elasticsearch - Windows Logstash输出到具有IAM EC2角色 “Unable to access SQS queue”的AWS SQS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28637967/

相关文章:

elasticsearch - 无法从命令行传递我的ES配置文件的路径

ElasticSearch 按嵌套字段中的匹配数排序

amazon-web-services - Logstash 输出到 AWS EC2 上的 Elasticsearch

elasticsearch - 如果查询在文档中至少匹配一次,如何获取 2 个或更多文档?

elasticsearch - 拒绝要为具有文本/关键字数据类型(ElasticSearch 6.2.3)的字段建立索引的数值

vbscript - 我的脚本不会在任务调度程序下运行。为什么?

windows-server-2008 - 如何配置Win2008生成故障转储

c# - 在 SQL Server/LINQ to SQL 中查询 ae 匹配 æ

docker - 在Logstash中使用docker GELF驱动程序env/label

elasticsearch - 如果我可以通过 REST 将数据发送到 elasticsearch,为什么要安装 logstash?