如何处理 Elasticsearch 中不同日志源的字段冲突?

Mat*_*t R 6 elasticsearch name-collision filebeat structured-logging

我们通过 Filebeat 将 Kubernetes 集群中运行的各种服务的日志发送到 Elasticsearch。其中一些服务是我们自己开发的,其他服务是第三方的。我们在索引中使用动态映射。我们遇到了一个问题,有时一个服务的日志使用的字段恰好与另一个服务的日志共享相同的名称,并且该字段中的数据类型不同。例如,在一项服务的日志中,该url字段可能是一个字符串,但在另一项服务中,它可能是一个结构化对象。然后我们在获取日志时遇到错误,内容如下:

{
  "type": "mapper_parsing_exception",
  "reason": "object mapping for [url] tried to parse field [url] as object, but found a concrete value"
}
Run Code Online (Sandbox Code Playgroud)

我们可以使用什么策略来避免这些冲突?