elasticsearch - 如何在 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 专家,所以请指导我如何处理这个问题,否则任何参考资料都会更有帮助。
解决方案
此页面 ( 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 中查看数据,首先需要创建一个与索引名称匹配的索引模式。
我希望我能帮助你。
推荐阅读
- java - [Android][RecyclerView] 方法不会覆盖或实现超类型中的方法
- android - 取消选中按钮单击时的单选按钮/单选组 - Android
- sqlite - Azure IMobileServiceSyncTable 解析器堆栈溢出
- java - 从格式化的硬盘驱动器恢复后是否可以恢复我的项目。代码编码已更改,我无法更改
- javascript - Javascript 流联合类型缺少用于 redux 操作的属性
- c# - Excel 阅读器(为 sheet1$ 设置一般变量)
- json.net - Newtonsoft Json.Net 中的 MissingMemberHandling.Error 拦截器
- javascript - 对为什么我的 fetch 方法没有发送 JSON 数据感到困惑
- c++ - C++ - 为什么没有合适的构造函数将 MyClass() 转换为 Myclass?
- php - 将产品类别链接按钮添加到 Woocommerce 单个产品页面