Мне кажется, что я что-то упускаю здесь, поскольку ни у кого в Интернете нет проблем. У меня есть установка экземпляра Windows Server 2008 R2 EC2 с ролью IAM, которая позволяет sqs:SendMessage
. Я успешно отправил сообщение в командной строке, используя интерфейс командной строки AWS и команду 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.
Спасибо!