elasticsearch 在logstash中为elasticsearch添加自定义映射,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration" /> elasticsearch 在logstash中为elasticsearch添加自定义映射,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration" />

elasticsearch 在logstash中为elasticsearch添加自定义映射

elasticsearch 在logstash中为elasticsearch添加自定义映射,elasticsearch,logstash,logstash-configuration,elasticsearch,Logstash,Logstash Configuration,我正在使用logstash在elasticsearch中输入日志。每天,它都会创建一个新的索引 这是我的logstash配置文件的输出部分 output { stdout { codec => rubydebug } elasticsearch { hosts => ["127.0.0.1"] index => "logstash-%{+YYYY.MM.dd}" } } 我希望一些字段不被分析。但每天创建一个新索引时,都

我正在使用logstash在elasticsearch中输入日志。每天,它都会创建一个新的索引

这是我的logstash配置文件的输出部分

output {
    stdout { codec => rubydebug }
    elasticsearch {
        hosts => ["127.0.0.1"]
        index => "logstash-%{+YYYY.MM.dd}"
    }
}

我希望一些字段不被分析。但每天创建一个新索引时,都会创建一个新映射,并分析所有字段。如何在每次创建新索引时强制elasticsearch使用特定映射?

您可以通过分配模板并对其进行管理来实现这一点,例如我的配置:

 elasticsearch {
            hosts => ["localhost:9200"]
            index => "XXX-%{+YYYY.ww}"
            template => "/opt/logstash/templates/XXX.json"
            template_name => "XXX"
            manage_template => true
 }
我相信我的配置可能有点过时,因为很遗憾我们使用的是旧版本的logstash。。。因此,在文档中阅读以下内容会有所帮助:

不过,这在logstash内部绝对是可能的


Artur

您可以使用ES索引模板,创建索引时将使用该模板:

在您的情况下,模板如下所示:

{
  "template": "logstash-*",
  "mappings": {
    "_default_": {
      ...
    }
  }
}

运行以下命令时,您会得到什么?curl-XGET localhost:9200/_template?可能重复的映射格式您知道应该是什么吗?例如,我可以将API调用的输出粘贴到那里:GetYourIndex/\u映射吗?