Прикрепление поля TTL к каждому журналу, отправленному через logstash в Elasticsearch

Описание: я хочу прикрепить поле TTL к журналам в logstash и отправить их в поиск Elastic.

Я уже просмотрел документацию, но не смог получить большую ее часть, так как она не очень ясна.

Это мой конфигурационный файл в logstash.

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

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

Теперь предположим, что для каждого прочитанного журнала я хочу прикрепить к нему TTL, скажем, 5 дней.

Я знаю, как активировать опцию TTL в упругом поиске. Но какие изменения мне придётся внести в файлы конфигурации поиска с упругой структурой, мне не очень понятно. Документация просит найти папку сопоставлений, но в папке загрузки эластичного поиска ее нет.

Нужна помощь специалиста.

1 ответ

Решение

Посмотрите здесь, если вы хотите поместить отображение в файловую систему. Вы должны пойти в config папку и создайте здесь папку с именем mappings и еще один с именем индекса внутри mappings, Поскольку logstash по умолчанию создает индекс в день, лучше использовать _default имя для папки, так что сопоставление будет применено ко всем индексам. Файл, который вы создаете в этой папке, должен иметь имя типа, к которому вы хотите применить сопоставление. Я не помню точно, какой тип logstash использует, поэтому я бы использовал _default_ определение отображения. Просто позвоните в файл _default_.json и поместите в него следующее содержание:

{
    "_default_" : {
        "_ttl" : { "enabled" : true }
    }
}

Как видите, имя типа должно появляться как в имени файла, так и в его содержимом.

В противном случае вы можете избежать размещения файлов в файловой системе. Вы можете создать шаблон индекса, содержащий ваше пользовательское сопоставление, например:

{
    "template" : "logstash-*",
    "mappings" : {
        "_default_" : {
            "_ttl" : { "enabled" : true }
        }
    }
}

Затем сопоставление будет применено ко всем индексам, чье имя соответствует шаблону шаблона. Если вы используете _default_ определение отображения отображение будет применяться по умолчанию ко всем типам, которые будут созданы.

Другие вопросы по тегам