gpt4 book ai didi

elasticsearch - Elasticsearch,从不将字段解析为对象

转载 作者:行者123 更新时间:2023-12-02 22:40:14 25 4
gpt4 key购买 nike

我正在运行一个非常标准的麋鹿服务器来解析我的python应用程序日志。我设置了python,将json中的日志与“msg”字段中的日志消息字符串一起输出。这对我来说确实非常有效,但是昨晚有人不小心将日志直接传递到消息字段,向日志发送垃圾邮件。由于昨晚第一个“msg”没有记录太多其他内容,因此新索引看到的被解析为一个对象。现在,所有正确格式化的日志消息均被拒绝,并显示以下错误:

"error"=>{"type"=>"mapper_parsing_exception", "reason"=>"object mapping for [msg] tried to parse field [msg] as object, but found a concrete value"}}}, :level=>:warn}

我知道 1 elasticsearch无法在同一字段中同时处理对象和字符串。有谁知道设置字段类型的最佳方法?是否应该通过使用logstash过滤器对其进行变异,通过设置elasticsearch映射或同时通过两者来完成?还是应该在python格式化程序中对日志进行预处理,以确保无法将msg解析为json?所有这三个选项似乎都比较简单,但是我真的不知道要取舍什么。

有什么建议吗?

最佳答案

指定mapping绝对是best practice

指定“文本”或“关键字”类型不仅可以防止看到的错误,而且还可以对性能产生其他有益的影响。

仅当您知道输入始终为json且出于某种原因不希望将其解析为其成分时(例如,如果它非常稀疏而对性能不利),我才建议logstash json_encode filter

关于elasticsearch - Elasticsearch,从不将字段解析为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34004806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com