TTL эластичный поиск не работает
Мне нужно поставить TTL с каждым из журналов, экспортируемых из logstash.
Я уже создал папку 'mappings' в папке config, в которой у меня есть папка _default, в которой у меня есть файл json по умолчанию.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
{
}
}
Я должен ожидать, что журналы удаляются из ELastic Search через 10 секунд, но это не так. Журналы сохраняются. Куда я иду не так? Я полностью застрял.
Нужна помощь.
2 ответа
Хорошо, ребята, получил его на работу. Просто пришлось поменять
MESSAGE %{DATA}ERR_SYSTEM%{DATA}
в
MESSAGE %{DATA}ERR_SYSTEM.*
Использовать шаблоны:
{
"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 минуту, автоматически удалить через минуту