当同时使用Logstash和Elasticsearch时,会为分析的字段附加.raw
字段,这样当使用像Kibana这样的工具查询Elasticsearch时,可以按原样使用字段的值,而无需按字分割不
我使用最新版本的所有内容构建了ELK堆栈的新安装,并注意到我的.raw
字段不再像旧版本的堆栈那样被创建。有很多folks posting solutions of creating templates on Elasticsearch,但我无法找到有关为什么这个修复内容的更多信息。为了更好地理解更广泛的问题,我提出了这个具体问题:
.raw字段来自哪里?
我假设Logstash在插入文档时使用字符串as-analyze和字符串as-raw填充Elasticsearch,但考虑到修复位于Elasticsearch模板中,我怀疑我的假设是否正确。
答案 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创建的模板。