如何修改logstash以将失败的消息发送到SQS DLQ

问题描述

我试图修改Logstash 7.6,以便将失败的消息发送到SQS DLQ [1]。具体来说,当Logstash使用SQS输入插件和elasticsearch输出插件时,我需要进行此修改。我在过滤器部分不使用任何东西。也就是说,我有两个队列,一个主队列及其SQS DLQ。我要修改文件是[2]。仅查看此工作是否在325行之后尝试添加中止,但是与主SQS关联的SQS DLQ没有收到任何消息。你能给点建议吗?

[1] https://github.com/logstash-plugins/logstash-output-elasticsearch/blob/8804933e2b15d867a049319e52ee61223552b6be/lib/logstash/outputs/elasticsearch/common.rb

[2] https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html

PDTA:我知道logstash具有自己的dlq,但我想要一个SQS DLQ。

解决方法

您可能希望修改DLQ write操作以执行自己的逻辑。

其中actionES specific tuple,例如['update',{ ... },event]-action[2]为您带来了原始的Logstash事件。