在使用带有Elasticsearch输出的Logstash时,.raw字段来自何处?

时间:2015-11-29 03:51:46

标签: elasticsearch logstash logstash-configuration

当同时使用Logstash和Elasticsearch时,会为分析的字段附加.raw字段,这样当使用像Kibana这样的工具查询Elasticsearch时,可以按原样使用字段的值,而无需按字分割不

我使用最新版本的所有内容构建了ELK堆栈的新安装,并注意到我的.raw字段不再像旧版本的堆栈那样被创建。有很多folks posting solutions of creating templates on Elasticsearch,但我无法找到有关为什么这个修复内容的更多信息。为了更好地理解更广泛的问题,我提出了这个具体问题:

.raw字段来自哪里?

我假设Logstash在插入文档时使用字符串as-analyze和字符串as-raw填充Elasticsearch,但考虑到修复位于Elasticsearch模板中,我怀疑我的假设是否正确。

1 个答案:

答案 0 :(得分:8)

您认为.raw字段是Logstash创建的默认索引模板中包含的字符串字段的动态模板的结果是正确的manage_template: true(默认情况下是这样)

可以看到Logstash创建的默认模板(从2.1开始)here。如第26行所示,所有字符串字段(message除外)都创建了not_analyzed .raw个子字段。

但是,在template.json change history中可以看到最新的Logstash版本中的模板没有更改,因此您的安装中的其他任何内容都必须是错误的,或者您已将Logstash配置更改为使用您自己的版本索引模板(不包含.raw字段)。

如果您运行curl -XGET localhost:9200/_template/logstash*,您应该会看到Logstash创建的模板。