Elasticsearch настройка index lifecycle _ilm фаза Delete

В версии Elasticsearch 6.7 появилась возможность управлять индексами, теперь можно забыть про написание скриптов и запуском их по крону, а также выключить решения в виду Curator.

Предлагаю рассмотреть возможность создания политики удаления старых индексов внутренними средствами Elasticsearch. На текущий момент используя версию Elasticsearch 7 (7.3)

У lifecycle менеджера есть 4 вида политики — Hot, Warm, Cold, Delete. Политики Hot, Warm, Cold более направлены на доступность и хранение данных, более горячие на быстром железе, холодные на медленном железе, запрос к которым может выполняться долго. Нас больше интересует политика Delete, т.к. горячей (Hot) фазой ротации занимается сам filebeat на серверах с приложением.

Имеем индексы примерно со следующими названиями:

Будем считать что сегодня 10 августа 2019 года. Задача стоит создать политику и удалить все индексы старше 10 дней.

Для этого нам необходимо создать Index Lifecycle Policies в Elasticsearch. Сделать это можно как PUT запросом так и банально в интерфейсе, рассмотрим вариант банальные, создание руками в интерфейсе т.к. это делается по факту всего один раз когда вы задумываете ту или иную политику. Например для dev вы создаете политику удалять логи через 10 дней, а для prod окружения — удалять через 30 дней.

Теперь необходимо создать шаблон. Темлейт включать в себя шаблоны тех индексов, которые должны обрабатываться данной политикой. Темплейт ссылается на политику. Темплейтов ссылающихся на политику ротации может быть много, например нам надо удалять не только индексы вида dev-7.3.0-2019.07.29, но и индексы от приложения app-7.3.0-2019.08.01.

Создаем темплейт.

Теперь необходимо применить наш шаблон ко всем уже существующим индексам dev-7.3.0-2019.07.29 — dev-7.3.0-2019.08.10

Все, теперь индексы dev-* будут удалятся через 10 дней, а также к старым индексам будет применена эта политика и из списка выше будут удалены:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *