1

我需要为从 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 秒后从 ELlastic Search 中删除,但事实并非如此。日志持续存在。我哪里错了?我完全被困住了。

需要帮忙。

4

2 回答 2

0

好家伙,开始工作了。只需要改变

MESSAGE %{DATA}ERR_SYSTEM%{DATA}

MESSAGE %{DATA}ERR_SYSTEM.*
于 2013-05-14T08:08:34.747 回答
0

use templates: { "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"} } } } } }

set 1 minute,automatically delete a minute later

于 2015-08-03T10:56:23.820 回答