我需要为从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中删除日志,但事实并非如此。日志仍然存在。 我哪里错了?我完全陷入困境。
需要帮助。
答案 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分钟,一分钟后自动删除