0

我在运行 ELK 堆栈和其他一些杂项的本地集群上设置了 dockerbeats。码头工人(所有通过 kubernetes 控制的容器)。我从 Ingensi ( Ingensi dockerbeat Dashboard ) 为 kibana设置了仪表板,并在设置图表时遇到了 containerNames 字段的问题。现在,就上下文而言,我的 docker 容器具有如下名称:

k8s_dockerbeats.79c42f90_dockerbeats-796n9_default_472faa11-1b3a-11e6-8bf4-28924a2bffbf_2832ea88

(以及具有相似容器名称的 kubernetes 支持容器)[2]:http : //i.stack.imgur.com/hvIUG.png k8s_POD.6d00e006_dockerbeats-796n9_default_472faa11-1b3a-11e6-8bf4-28924a2bffbf_3ddcfe44

当我在 kibana 中设置仪表板时,我遇到了一个问题,即我从同一个容器中获取了多个容器名称。例如,我将 containerName 拆分为更小的部分,而不是单个 containerName 输出:

k8s_dockerbeats
79c42f90_dockerbeats
796n9
28924a2bffbf_3ddcfe44

等等...

我假设容器名称的格式会混淆仪表板(可能是它解析名称信息的方式),我可能会四处将每个容器重命名为更合理的名称。

但在我这样做之前,有没有办法以我读取整个容器名称字符串的方式配置仪表板,这样它就不会像第一个图像中那样分解?(假设我必须从上面提到的存储库中挖掘 .json 文件)

如果有人回答这个问题,请提前感谢。

4

1 回答 1

0

听起来 Elasticsearch 正在分析容器名称。您需要确保容器名称字段标记为not_analyzedElasticsearch 索引模板中的内容。您可以通过安装Dockerbeat 提供的索引模板来做到这一点。

将字段标记为not_analyzed可确保数据未被标记化并且按原样被索引。它只能通过指定确切的字符串进行搜索。

安装新索引模板后,您需要删除当前索引才能更改映射。

安装提供的索引模板:

  • curl -XPUT 'http://elasticsearch:9200/_template/dockerbeat' -d@dockerbeat.template.json

删除现有索引:

  • curl -XDELETE 'http://elasticsearch:9200/dockerbeat-*'

您可以通过查询 Elasticsearch 查看您当前的映射:

  • curl http://elasticsearch:9200/dockerbeat-*/_mapping
于 2016-05-16T19:45:19.420 回答