Logstash:将原始的mapping_error事件从Dead Letter Queue写入Elasticsearch

问题描述

我正在尝试寻找一种方法,以获取将映射错误从Logstash的Dead Letter Queues映射到Elasticsearch时失败的消息的原始数据的方法,因此我首先可以研究导致消息最终出现在DLQ中的原因

我发现这个问题是在不久前问到的:https://discuss.elastic.co/t/logstash-dead-letter-queue-send-raw-message-to-elasticsearch/190781,它确切地描述了我想做的事情,但看起来好像从未提供OP所要求的原始解决方案。

我不在乎“修复” DLQ事件或事件未达到其原始“目的地”,我只想将原始消息作为字符串带入Elasticsearch,最好是带有映射错误的原因从DLQ元数据中,所以我可以记录所有相同的未索引消息以及它们发生的原因。

此刻,通过使用notepad $profile 输入插件dead_letter_queue输出插件的简单管道,来自DLQ的事件被“原样”写入ES索引(有时甚至导致更多映射错误

我正在努力寻找如何“封装”原始JSON消息并使用elasticsearch插件通过filter部分添加DLQ元数据的方法,因为我找不到方法引用我从mutate输入插件或DLQ元数据中筛选出的JSON消息的全部信息。

例如,我需要从:

dead_letter_queue

收件人:

{
    "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> } } } 部分中的任何帮助和指针,将不胜感激!

(Logstash和Elasticsearch版本为7.7.0)

(也在弹性论坛上也提出了这个问题,如果我在那里得到答案,也会在这里更新,反之亦然。 https://discuss.elastic.co/t/writing-raw-mapping-error-events-from-the-logstash-dlq-to-elasticsearch/248024

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)