首页 > 解决方案 > 如何在 ELK 的弹性搜索中映射数据?

问题描述

我是 ELK 的新手,我正在学习它。在我的项目中,他们从 Amazon S3 -> File Beat -> logstash -> Elastic search -> Kibanna 导入数据。

在logstash文件中,他们直接导入数据并发送到弹性搜索,如下所示,配置文件中没有提到索引,

output  elasticsearch 
{
hosts => ["http://localhost:9200"]
}

在 Amazon s3 中,我们有来自 Salesforce 的日志,未来我们将从多个来源实施。

在弹性搜索中,我可以看到 41 个索引(Used Get Curl script)存在。假设如果我们在 logstash 中保持相同的设置,那么所有日志(多个来源)将以相同的方式发送到弹性搜索。我想知道数据是如何映射到弹性搜索中的特定索引的??

在许多教程中,他们在 logstash 配置文件中给出了索引,因此在 kibanna 中我们可以看到索引名称和时间戳。我试图通过在 Amazon S3 中放置一个示例 Mulesoft 日志文件来进行检查,但我无法在 Kibanna 中找到这些数据。那么我是否需要再创建一个名为 Mule 的新索引以及映射?

我的项目中没有 ELK 专家,所以请指导我如何处理这个问题,否则任何参考资料都会更有帮助。

标签: elasticsearchlogstashelastic-stackelk

解决方案


此页面 ( https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html ) 记录了 Logstash 的 Elasticsearch 输出插件。

正如您在“配置选项”部分中看到的那样,该选项不是index强制性的。如果未指定此选项,则其默认值为。logstash-%{+YYYY.MM.dd}

话虽如此,文档将被索引到前缀为“logstash-”的索引中,后跟摄取日期。例如:

  • logstash-2020.04.07

  • logstash-2020.04.08

由于您组织中的某个人已选择使用默认值,因此可以省略此选项。这解释了为什么在 Logstash 配置中找不到特定的索引名称。如果您需要将文档索引到不同的索引中,那么您必须为该index选项设置一个特定的值。

如果您没有通过索引模板设置显式映射, Elasticsearch 将使用动态映射 ( https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic-mapping.html )自动创建这些索引进步。为了在 kibana 中查看数据,首先需要创建一个与索引名称匹配的索引模式。

我希望我能帮助你。


推荐阅读