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

时间:2016-10-18 09:03:17

标签: elasticsearch logstash logstash-configuration

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

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

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

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

2 个答案:

答案 0 :(得分:1)

您可以通过分配模板并管理它们来完成此操作,例如我的配置:

 elasticsearch {
            hosts => ["localhost:9200"]
            index => "XXX-%{+YYYY.ww}"
            template => "/opt/logstash/templates/XXX.json"
            template_name => "XXX"
            manage_template => true
 }

我认为我的配置可能会略微过时,因为我们遗憾地看到旧版本的logstash ...所以在文档上阅读此内容会很有帮助:https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html

这在logstash中肯定是可能的。

Artur

答案 1 :(得分:0)

您可以使用ES索引模板,然后在创建索引时使用该模板:https://www.elastic.co/guide/en/elasticsearch/reference/2.4/indices-templates.html

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

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