在我的设置中,我有一个中央系统日志服务器,它通过td-agent(流利的)将所有日志转发到具有elasticsearch的节点。我将在最后发布配置。
现在,一切运行良好,我可以搜索日志,我能够创建一个弹性搜索节点集群等等。我现在需要的是设置所有包含文件的_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 / nodes / 0 / indices:
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 :(得分: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" }}}'
如果它再次抛出错误。然后你需要删除索引并重新创建ttl值为30d的索引
删除索引
$ 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" }}}'
它有帮助......!