动态映射字段的日志解析问题

问题描述 投票:0回答:1

我们在 logstash 中不断收到以下条目的错误:

"Could not dynamically add mapping for field [app.kubernetes.io/created-by]. Existing mapping for [kubernetes.labels.app] must be of type object but found [keyword]."}}}}

任何人都可以帮助正确解析字段“kubernetes.labels.app.kubernetes.io/created-by”。该条目被视为平面字段,我们应该将其转换为分离格式或将其重命名为“kubernetes.labels.app_created-by”。

我们确实在现有的摄取管道中尝试使用重命名处理器,如下所示:

{
        "rename": {
          "field": "kubernetes.labels.app.kubernetes.io/created-by",
          "target_field": "kubernetes.labels.app_created_by"
        }
 }

还有 logstash 的 mutate 过滤器,如:

mutate
  {
   rename => { "[kubernetes][labels][app.kubernetes.io/created-by]" => "[kubernetes][labels][app_created-by]"
  }

这两个都没有帮助我们解决问题。

elasticsearch logstash filebeat
1个回答
0
投票

长话短说;

由于您启用了动态映射,因此似乎弹性首先收到了一个如下所示的文档:

{
  "kubernetes": {
    "labels": {
      "app": "some name"
    }
  }
}

导致弹性自动解析假设

kubernetes.labels.app
是一个关键字。

现在它正在接收具有这种布局的新文档:

{
  "kubernetes": {
    "labels": {
      "app": {
        "kubernetes": {
          "io/created-by": "a date"
        }
      }
    }
  }
}

映射对此并不满意。

解决方案

我需要一份文件样本来解释更多。

© www.soinside.com 2019 - 2024. All rights reserved.