我正试图找到一种方法,从我的logstash的死信队列到elasticsearch中获取在Map错误时失败的消息的原始数据,这样我就可以研究为什么这些消息首先会出现在dlq中。
不久前我发现有人问这个问题:https://discuss.elastic.co/t/logstash-dead-letter-queue-send-raw-message-to-elasticsearch/190781,这正好描述了我想做的事情,但看起来op要求的原始解决方案从未提供过。
我不关心“修复”dlq'd事件或它们没有到达它们原来的“目的地”,我只关心将原始消息作为字符串带到elasticsearch,最好是带有dlq元数据中Map错误的原因,这样我就可以记录所有这些未索引的消息以及它们发生的原因。
目前,使用 dead_letter_queue
输入插件和 elasticsearch
输出插件时,dlq中的事件会“按原样”写入es索引(有时会导致更多的Map错误)
我正在努力找到如何“封装”原始json消息并通过 filter
带有 mutate
插件,因为我找不到一种方法来引用从 dead_letter_queue
输入插件,或dlq元数据。。。。
例如,我需要从:
{
"object_with_mapping_error" :
{
"int_field": "oops",
"string_field": 123
}
}
收件人:
{
"message" : "{\"object_with_mapping_error\":{\"int_field\": \"oops\", \"string_field\": 123}}",
"error":
{
"type" : "mapper_parsing_exception",
"reason": <corresponding value from DLQ metadata>,
"caused_by" : {
"type" : <corresponding value from DLQ metadata>,
"reason": <corresponding value from DLQ metadata>
}
}
}
任何和所有的帮助/指点 filter
本节需要完成这一点将不胜感激!
(logstash和elasticsearch版本为7.7.0)
(在弹性论坛上也问了这个问题,如果我在那里得到答案,我会在这里更新,反之亦然。https://discuss.elastic.co/t/writing-raw-mapping-error-events-from-the-logstash-dlq-to-elasticsearch/248024)
暂无答案!
目前还没有任何答案,快来回答吧!