TTL弹性搜索不起作用

时间:2013-05-13 06:55:06

标签: logging elasticsearch ttl logstash

我需要为从logstash导出的每个日志添加一个TTL。

我已经在config文件夹下创建了一个文件夹'mappings',在该文件夹下我有一个文件夹_default,我有一个json文件 default .json,它有:

{
    "_default_" : {
        "_ttl" : { "enabled" : true, "default" : "10s" }
    }
}

我将日志导出到带有logstash的弹性服务器。配置文件是:

input {
stdin {
    type => "stdin-type"
  }
}
filter {

  grok {
    type => "stdin-type"
    pattern => "I am %{USERNAME:username}"
add_tag=>"{username}"
  }

}
output {
  stdout { debug => true debug_format => "json"}
  elasticsearch
{
}
}

我应该会在10秒后从ELastic Search中删除日志,但事实并非如此。日志仍然存在。 我哪里错了?我完全陷入困境。

需要帮助。

2 个答案:

答案 0 :(得分:0)

好人,让它上班。只需改变

MESSAGE %{DATA}ERR_SYSTEM%{DATA}

MESSAGE %{DATA}ERR_SYSTEM.*

答案 1 :(得分:0)

使用模板: { "template_1" : { "template" : "logstash-*", "settings" : { "number_of_shards" : 5, "number_of_replicas" : 1, "index.cache.field.type" : "soft", "index.refresh_interval" : "5s", "index.store.compress.stored" : true, "index" : { "store" : { "compress" : { "stored" : true }} } }, "mappings" : { "nginxlog" : { "_ttl" : {"enabled" : true, "default" : "1m"}, "properties" : { "@timestamp": { "type": "date", "format" : "dateOptionalTime"} } } } } }

设置1分钟,一分钟后自动删除