2016-02-25 135 views
1

elasticsearch版本:elasticsearch-2.2.0.rpm logstash版本:logstash-2.2.2-1.noarch.rpm如何配置logstash以創建elasticsearch索引?

我開始elasticsearch,然後用/etc/logstash/conf.d/logstash.conf logstash有一個基本的stdin/stdout,但沒有創建elasticsearch索引。如果我以下內容添加到我的logstash輸出配置我得到的指示黃色狀況的指標:

行動=>「創建」 指數=>「main_index」

它是黃色的,而不能使用的原因,是因爲碎片的數量爲5和副本是如果我運行:

捲曲-XPUT 'http://localhost:9200/index2/' -D ' 指數: number_of_shards:1個 number_of_replicas:0 '

「index2」是綠色且可用。我如何告訴logstash和/或elasticsearch我希望我的索引有0個副本的碎片而不發出curl命令?

謝謝。

+0

將指數TEMPL ates爲你工作? http://stackoverflow.com/questions/24553718/updating-the-default-index-number-of-replicas-setting-for-new-indices – Filip

+0

也許這個閱讀可能會提供一些更好的背景給你的困境...... https://github.com/logstash-plugins/logstash-output-elasticsearch/issues/324 – Filip

回答

0

例如,你可以創建一個小的指數只是一個初級碎片,並用以下要求的任何副本碎片:

PUT /my_index 
     { 
     "settings": { 
      "number_of_shards" : 1, 
      "number_of_replicas" : 0 
     } 
     } 
3

你有三種解決方案:

  1. 您覆蓋default index template Logstash使用並且使用provide your own以及正確的設置,即"number_of_replicas": 0
  2. 您在ES中創建index template,並使用正確的索引設置
  3. elasticsearch.yml,您更改名爲index.number_of_replicas的設置,並將其設置爲0(然後重新啓動ES)
+1

解決方案3不適用於版本5.0.1(可能在任何5.x上),因爲索引級別配置已從配置中禁用文件:「由於elasticsearch 5.x索引級別設置不能在類似elasticsearch.yaml的節點 配置中設置」。來源:https://github.com/elastic/elasticsearch/issues/18073 – sebaGra

+0

好點@sebaGra。這仍然有其他兩種解決方案,雖然;-) – Val

+0

的確,@Val,我只是嘗試了選項1,像一個魅力:)。我爲您的答案添加了一個示例,因爲我必須從各處收集一些信息才能使其工作。 – sebaGra

0

爲了完成Val´s answer,這裏是ES 5.x版本的更新:

由於配置文件禁用索引級別配置,因此解決方案3不起作用:「由於elasticsearch 5.x索引級別設置不能在類似elasticsearch.yaml的節點配置上設置」

解決方案1可以工作,是一個例子:

  • here下載並編輯ES 5.x的基本模板。
  • 更改模板名稱,以匹配索引名模式,並添加你想在第一時間更新索引設置:

    { 
        "template" : "syslog*", 
        "version" : 50001, 
        "settings" : { 
        "index.refresh_interval" : "5s", 
        "index.number_of_replicas" : 0, 
        "index.number_of_shards" : 1 
        }, 
    ... 
    } 
    
  • 更新logstash配置,以便輸出使用創建的模板:

    output { 
        elasticsearch { 
        hosts => ["localhost:9200"] 
        index => "syslog%{+YYYY.MM.dd}" 
        template => "path_to_your_template.json" 
        template_name => "syslog*" 
        template_overwrite => true 
        } 
    } 
    
  • 重新啓動該服務

相關問題