2015-11-11 68 views
3

配置碼頭集裝箱中的映射ES索引模板的最佳方法是什麼?我期望使用模板文件,但似乎從版本2它is not possible。執行http請求也不起作用,因爲容器創建過程沒有啓動。它可以在每個容器啓動時通過腳本完成,該腳本將啓動ES並執行HTTP請求,但看起來非常難看。碼頭集裝箱的默認彈性搜索配置

+0

你解決這個問題? – mavarazy

+0

@mavarazy,nope。我在容器啓動時使用HTTP API – 4ybaka

回答

0

,你可以通過執行在Linux終端HTTP PUT請求映射配置模板,如下:

curl -XPUT http://ip:port/_template/logstash -d ' 
    { 
     "template": "logstash-*", 
     "settings": { 
     "number_of_replicas": 1, 
     "number_of_shards": 8 
     }, 
     "mappings": { 
     "_default_": { 
      "_all": { 
      "store": false 
      }, 
      "_source": { 
      "enabled": true, 
      "compress": true 
      }, 
      "properties": { 
      "_id": { 
       "index": "not_analyzed", 
       "type": "string" 
      }, 
      "_type": { 
       "index": "not_analyzed", 
       "type": "string" 
      }, 
      "field1": { 
       "index": "not_analyzed", 
       "type": "string" 
      }, 
      "field2": { 
       "type": "double" 
      }, 
      "field3": { 
       "type": "integer" 
      }, 
      "xy": { 
       "properties": { 
       "x": { 
        "type": "double" 
       }, 
       "y": { 
        "type": "double" 
       } 
       } 
      } 
      } 
     } 
     } 
    } 
    ' 

的「logstash- *」爲索引的名字,你可以試試。

0

如果使用logstash,可以使

input { 
    ... 
} 

filter { 
    ... 
} 

output { 
    elasticsearch { 
     hosts => "elasticsearch:9200" 
     template => "/usr/share/logstash/templates/logstash.template.json" 
     template_name => "logstash" 
     template_overwrite => true 
     index => "logstash-%{+YYYY.MM.dd}" 
    } 
} 

參考您的logstash管道配置

管道/ logstash.conf的模板部分:https://www.elastic.co/guide/en/logstash/6.1/plugins-outputs-elasticsearch.html#plugins-outputs-elasticsearch-template