logstash 动态Map字段的日志分析问题

7gyucuyw  于 2023-04-18  发布在  Logstash
关注(0)|答案(1)|浏览(213)

我们在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]"
  }

这两种方法也不能帮助我们解决这个问题。

j9per5c4

j9per5c41#

Tldr;

由于您启用了动态Map,因此elastic首先收到的文档看起来像这样:

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

这导致弹性自动解析假设kubernetes.labels.app是一个关键字。
现在,它正在接收具有以下布局的新文档:

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

而Map对此并不满意。

溶液

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

相关问题