0

我正在使用 metricbeat 获取 docker 性能数据,并且我正在尝试从 Docker 性能数据中生成仪表板。

我在 Kibana 仪表板中遇到的错误: 在此处输入图像描述

我在 metricbeat.template.json 中启用了 fielddata:true : 在此处输入图像描述

然后我重新启动了 Metricbeat 和 Kibana 并开始了。问题仍然存在。这是三个错误:

Visualize: Fielddata is disabled on text fields by default. Set fielddata=true on [docker.container.name] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory.

Visualize: Fielddata is disabled on text fields by default. Set fielddata=true on [docker.container.id] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory.

Visualize: Fielddata is disabled on text fields by default. Set fielddata=true on [docker.container.image] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory.

任何人都可以帮助解决这个问题吗?

提前致谢。

4

2 回答 2

0

这是我尝试过的映射:

PUT /metricbeat-*/_mapping/docker
{
  "properties":{
    "container":{
      "type":"text",
      "fields":{
        "name":{
          "type": "text",
          "analyzer": "standard",
          "fielddata": true
        },
        "id":{
          "type":"keyword"
        },
        "image":{
          "type": "text",
                    "fielddata": true
        }
      }
    }
  }
}

映射有效。但是,我现在遇到了一个不同的错误 - Courier Fetch: 30 of 40 shards failed

于 2017-03-03T11:30:39.810 回答
0

您可能必须通过将fielddata启用为truemappings来更改字段 ( name,id,image) 。您的映射可能如下所示:

{
  "mappings": {
    "your_type": {
      "properties": {
        "name": {
          "type": "text",
          "fielddata": true
        },
        "id": {
          "type": "integer",
          "fielddata": true
        },
        "image": {
          "type": "text",
          "fielddata": true
        }
      }
    }
  }
}

也看看文档。希望这可以帮助!

编辑

我想问题在于使用类型文本进行聚合,这在理想情况下会导致上述异常。文本类型字段是analyzed天生的,通常可以用于全文搜索。如果您考虑将未分析 keyword的数据用于聚合目的,这可能对您有用。你也可以在这里阅读更多关于这个的内容,并查看这张,它实际上谈到了同样的争议。

于 2017-02-28T17:58:09.247 回答