Dockerbeats 仪表板 containerName 字段的问题
Problems with Dockerbeats dashboard containerName field
我在 运行 ELK 堆栈和其他一些杂项的本地集群上设置了 dockerbeats。 dockers(通过 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 中设置仪表板时,我遇到了一个问题,即我从同一个容器中获取了多个 containerNames。例如,我将 containerName 分成更小的部分,而不是单个 containerName 输出:
k8s_dockerbeats
79c42f90_dockerbeats
796n9
28924a2bffbf_3ddcfe44
等等...
我假设容器名称的格式混淆了仪表板(可能是它解析名称信息的方式),我可能会四处将每个容器重命名为更合理的名称。
但在我这样做之前,有没有一种方法可以配置仪表板,让我读入整个容器名称字符串,这样它就不会像第一张图片中那样分解? (假设我必须深入研究上述存储库中的 .json 文件)
如果有人回答这个问题,请提前致谢。
听起来容器名称正在被 Elasticsearch 分析。您需要确保容器名称字段在 Elasticsearch 索引模板中被标记为 not_analyzed
。您可以通过安装 Dockerbeat 提供的 index template 来做到这一点。
将字段标记为 not_analyzed
可确保数据未标记化并按原样索引。只能通过指定确切的字符串进行搜索。
安装新索引模板后,您需要删除当前索引才能更改映射。
安装提供的索引模板:
curl -XPUT 'http://elasticsearch:9200/_template/dockerbeat' -d@dockerbeat.template.json
删除现有索引:
curl -XDELETE 'http://elasticsearch:9200/dockerbeat-*'
您可以通过查询 Elasticearch 查看您当前的映射:
curl http://elasticsearch:9200/dockerbeat-*/_mapping
我在 运行 ELK 堆栈和其他一些杂项的本地集群上设置了 dockerbeats。 dockers(通过 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 中设置仪表板时,我遇到了一个问题,即我从同一个容器中获取了多个 containerNames。例如,我将 containerName 分成更小的部分,而不是单个 containerName 输出:
k8s_dockerbeats
79c42f90_dockerbeats
796n9
28924a2bffbf_3ddcfe44
等等...
我假设容器名称的格式混淆了仪表板(可能是它解析名称信息的方式),我可能会四处将每个容器重命名为更合理的名称。
但在我这样做之前,有没有一种方法可以配置仪表板,让我读入整个容器名称字符串,这样它就不会像第一张图片中那样分解? (假设我必须深入研究上述存储库中的 .json 文件)
如果有人回答这个问题,请提前致谢。
听起来容器名称正在被 Elasticsearch 分析。您需要确保容器名称字段在 Elasticsearch 索引模板中被标记为 not_analyzed
。您可以通过安装 Dockerbeat 提供的 index template 来做到这一点。
将字段标记为 not_analyzed
可确保数据未标记化并按原样索引。只能通过指定确切的字符串进行搜索。
安装新索引模板后,您需要删除当前索引才能更改映射。
安装提供的索引模板:
curl -XPUT 'http://elasticsearch:9200/_template/dockerbeat' -d@dockerbeat.template.json
删除现有索引:
curl -XDELETE 'http://elasticsearch:9200/dockerbeat-*'
您可以通过查询 Elasticearch 查看您当前的映射:
curl http://elasticsearch:9200/dockerbeat-*/_mapping