问题描述
我正在尝试寻找一种方法,以获取将映射错误从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 (将#修改为@)