2014-03-14 86 views
1

在我的設置中,我有一箇中央系統日誌服務器,它通過td-agent(fluentd)通過elasticsearch將其所有日誌轉發到節點。我將在最後發佈配置。如何在elasticsearch中設置全局_ttl

現在,一切都很好,我可以搜索日誌,我可以製作一組彈性搜索節點,等等。我現在需要的是設置所有無文檔的_ttl。我希望他們在30天后被刪除。

我試圖

curl -XPUT 'http://172.19.19.225:9200/fluentd' -d '{ "tweet" : { "_ttl" : { "enabled" : true, "default" : "2h" }}}' 

(是的,我是傻,我讓「推特」有),但當然沒有工作,現在所有其他的嘗試讓我

{"error":"IndexAlreadyExistsException[[fluentd] already exists]","status":400} 

我不知道該怎麼做了。

蔭向所有人開放的解決方案,謝謝^^

/etc/td-agent/td-agent.conf:

<source> #Input plugins are defined be <source>...</source> statements 
    type syslog #This is the Syslog input plugin, which we will use later in this tutorial 
    port 42185 
    tag es.syslog 
</source> 

#<source> 
# type http #This is the HTTP input plugin, which turns Fluentd into an HTTP endpoint 
# port 8888 #Send data to http://localhost:8888/<Fluentd tag>?json=<json event> 
#</source> 

<match es.**> 
    type copy 
    <store> 
    type elasticsearch 
    logstash_format true 
    index_name fluentd 
    type_name fluentd 
    flush_interval 3 # For testing 
    host localhost 
    port 9200 
    </store> 
# <store> 
# type stdout 
# </store> 
</match> 

彈性搜索在默認配置。與指數的目錄看起來是這樣的: LS的/ var/lib中/ elasticsearch/elasticsearch /節點/ 0 /指數:

fluentd   logstash-2014.02.13 logstash-2014.02.16 logstash-2014.02.19 logstash-2014.02.22 logstash-2014.02.25 logstash-2014.02.28 logstash-2014.03.03 logstash-2014.03.06 logstash-2014.03.09 logstash-2014.03.12 
kibana-int  logstash-2014.02.14 logstash-2014.02.17 logstash-2014.02.20 logstash-2014.02.23 logstash-2014.02.26 logstash-2014.03.01 logstash-2014.03.04 logstash-2014.03.07 logstash-2014.03.10 logstash-2014.03.13 
logstash-2014.02.12 logstash-2014.02.15 logstash-2014.02.18 logstash-2014.02.21 logstash-2014.02.24 logstash-2014.02.27 logstash-2014.03.02 logstash-2014.03.05 logstash-2014.03.08 logstash-2014.03.11 logstash-2014.03.14 
+0

你有任何問題重新索引? – BlackPOP

回答

2

先關閉指數:

 $ curl -X POST 'http://172.19.19.225:9200/fluentd/_close' 

更新設置

 $ curl -X PUT 'http://172.19.19.225:9200/thegame/_settings' -d \ 
    '{ "tweet" : { "_ttl" : { "enabled" : true, "default" : "30d" }}}' 

如果它再次拋出錯誤,那麼您需要刪除索引和recr eate與30D

TTL值的索引刪除索引

 $ curl -X DELETE 'http://172.19.19.225:9200/fluentd/' 

創建索引

 $ curl -X PUT 'http://172.19.19.225:9200/thegame' 

更新映射

 $ curl -X PUT 'http://172.19.19.225:9200/thegame/_settings' -d \ 
     '{ "tweet" : { "_ttl" : { "enabled" : true, "default" : "30d" }}}' 

HOpe它幫助..!

+0

它讓我在正確的標記,謝謝。 – user3337015