Beats:为 Beats => Logstash => Elasticsearch 架构创建 template 及 Dashboard

文章转载自:https://elasticstack.blog.csdn.net/article/details/115341977

前一段时间有一个开发者私信我说自己的 Beats 连接到 Logstash,然后连接到 Elasticsearch。等数据在 Elasticsearch 中收集完后,发现 Kibana 中的 Dashboard 不能被使用。数据类型不匹配。这个到底是什么原因呢?
我们可以通过如下的三种路径把数据导入到 Elasticsearch 中:

  • Beats ==> Elasticsearch
  • Beats ==> Logstash ==> Elasticsearch
  • Beats ==> Kafka ==> Logstash ==> Elasticsearch

在 Beats 的模块启动中,我们通常采用 setup 来进行导入index template, ingest pipeline,ILM policy 及 Dashboard。非常需要注意的一点是:如果你没有一个 index template,那么等 Elasticsearch 收集第一个数据,它就会按照自己默认的方式为你的数据创建一个 mapping。这个也就是在 Elasticsearch 中常说的 schemaless,但是在很多的情况下这个并不是最优的 mapping。当我们使用 Beats 导入的 Dashboard,它适合于使用 setup 命令而导入的 index template 所定义的数据类型。当我们使用 Beats 时,我们最重要的一点就是先执行 setup,而后再导入数据。

然而对于如下的两种输入方式:

  • Beats ==> Logstash ==> Elasticsearch
  • Beats ==> Kafka ==> Logstash ==> Elasticsearch

由于我们的 Beats 并不是直接连接到 Elasticsearch。在执行 setup 时,它并不能起到作用。那么我们该怎么办呢?
对上面的两种情况,我们需要首先按照如下的方式配置 Beats:

也就是:

  • Beats ==> Elasticsearch

当我们执行完 setup 命令之后,我们就创建好了相应的 index template,index pattern, ILM policy 以及 Dashboard 等。这个过程我们可以称之为 Bootstrap。然后,当我们导入数据的时候,我们按照之前的连接方式导入数据,也就是:

  • Beats ==> Logstash ==> Elasticsearch
  • Beats ==> Kafka ==> Logstash ==> Elasticsearch

值得注意的是:setup 针对任何的 Beats,只需要运行一次就可以了。这样导入的数据,它完全可以使用之前的 Dashboard 进行展示。

posted @ 2021-06-29 10:06  哈喽哈喽111111  阅读(159)  评论(0编辑  收藏  举报