Elasticsearch、Logstash 和 Kibana 上的非技术术语

Non-technical terms on Elasticsearch, Logstash and Kibana

我有疑问。我知道 Logstash 允许我们输入 csv/log 文件并使用分隔符和列对其进行过滤。它将输出到 elasticsearch 以供 Kibana 使用。但是,在写入conf文件后,是否需要使用以下命令指定索引模式:

CURL -XPUT 'http://localhost:5601/test' d 

因为我知道当您有一个 JSON 文件时,您将必须定义映射等。我是否需要为 csv 文件和其他非 json 文件执行此步骤?抱歉提问,我需要澄清我的疑问。

当您将文档插入新的 elasticsearch 索引时,会为您创建一个映射。这可能不是一件好事,因为它基于每个字段的初始值。想象一个通常包含字符串的字段,但初始文档包含一个整数 - 现在您的映射是错误的。这是创建映射的好案例。

如果您通过 logstash 将文档插入名为 logstash-YYYY-MM-DD(默认)的索引,logstash 将应用它自己的映射。它将使用您在 grok{} 中提供的任何模式提示,例如:

%{NUMBER:bytes:int}

它还会为每个字符串制作一个 "raw"(未分析)版本,您可以通过 myField.raw 访问它。这也可能不是您想要的,但您可以创建自己的映射并将其作为参数提供在 elasticsearch{} 输出节中。

您还可以制作模板,当索引模式与模板定义匹配时,elasticsearch 将应用该模板。

因此,如果您不喜欢 elasticsearch 或 logstash 的默认行为,则只需创建一个映射。

希望对您有所帮助。