Filebeat 给出:[error] 的对象映射试图将字段 [error] 解析为对象,但找到了一个具体值

Filebeat gives: object mapping for [error] tried to parse field [error] as object, but found a concrete value

在弹性搜索中,我创建了一个具有下一个 grok 模式的摄取管道:

OK -%{DATA:label},%{INT:samples},%{BASE16FLOAT:average},%{BASE16FLOAT:min},%{BASE16FLOAT:max},%{BASE16FLOAT:p90},%{BASE16FLOAT:stddev},(?<error>([0-9].[0-9]*%)),

用下一行模拟这个:

OK - test,272,2275,593,14830,4581,1826.76,0.00%,.0,9.53,291717.4,30-04-2018 10:29:09 

在 kibana 中完美运行。

当我让 filebeat 索引这个文件时,我得到这个错误:object mapping for [error] tried to parse field [error] as object, but found a concrete value 出了什么问题?

您的 elasticsearch 索引模板中似乎存在映射错误。因此,请检查索引模板中的错误值。 这就是它与 kibana 中的 grok 匹配器一起工作的原因。

无论如何,我建议使用过滤器插件 csv,因为它会为您解析它

将字段错误重命名为run_error 解决了所有问题。貌似字段error是reserved.

我有过类似的情况,你的问题的原因是在同一个弹性索引中,你的错误属性 is found of type object and sometimes of type values, Elasticsearch does not allow this