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

Bra*_*rad 9 elasticsearch logstash logstash-configuration

当同时使用Logstash和Elasticsearch时,.raw为分析的字段附加字段,以便在使用像Kibana这样的工具查询Elasticsearch时,可以按原样使用字段的值而不进行单字分割,什么不可以.

我使用最新版本的所有内容构建了一个新的ELK堆栈安装,并注意到我的.raw字段不再像旧版本的堆栈那样被创建.有很多人发布了在Elasticsearch上创建模板的解决方案,但是我还没有找到很多关于为什么修复这些问题的信息.为了更好地理解更广泛的问题,我问这个具体问题:

.raw字段来自哪里?

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

Val*_*Val 8

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

可以在此处看到Logstash创建的默认模板(从2.1开始).正如您在第26行所看到的,所有字符串字段(除了message一个)都not_analyzed .raw创建了一个子字段.

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

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