Используя Elasticsearch для хранения журналов бизнес-системы, каждый день будет генерироваться новый индекс согласно дате, ежедневно миллионы документов, если индекс Elasticsearch не будет вовремя очищен, это приведёт к увеличению пространства на диске, сильной нагрузке на диск, и скорость поиска также снизится. Ранее мы вручную очищали индексы ES и регулярно использовали shell-скрипты, но ES может создать политику жизненного цикла индекса, чтобы помочь нам удалять старые исторические индексы.
Версия Elasticsearch, использованная в этой статье: 7.10.2
Сегодня 2022-03-11, и вы можете увидеть, что индекс и документы за январь 2022 года всё ещё существуют, как показано на рисунке ниже:
Создайте шаблон индекса
Откройте панель администратора Kibana, нажмите Index Management -> Index Template ->, чтобы создать шаблон индекса с следующим именем:logger-template, индексный модуль заполняет индексы, которые нужно сопоставить, а затем переходит к следующему этапу, как показано на рисунке ниже:
Примечание: при создании нового индекса Elasticsearch шаблон автоматически будет сопоставлен для завершения базовой части индекса. То есть при создании индекса itsvse-2022-03-13 он будет совпадать с версией logger-template, а затем выполнять правила, заданные шаблоном.Исторические индексы (даже если они совпадают с шаблонами) не связаны с шаблонами индексов!!! В этой статье,Индексы, не созданные на основе шаблона, не могут быть автоматически удалены。
Создайте политику жизненного цикла индекса
Откройте панель администратора Kibana и нажмите Index Lifecycle Policy ->, чтобы создать политику, как показано на следующем изображении:
Заполнение имени»Auto-clean-30-days-logger, снять галочку Включить текущие обновления, как показано на следующем рисунке:
Откройте фазу удаления, чтобы автоматически очистить индексы до 30 дней назад, как показано на следующем изображении:
Наконец, добавьте политику в шаблон индекса, как показано на следующем изображении:
На этом этапе новый индекс будет автоматически сохраняться на 30 дней, индекс выше 30 дней будет удалён, а исторический индекс придётся очищать вручную!! Чтобы вручную удалить индекс, обратитесь к следующему:
Ознакомьтесь с шаблоном индекса, который вы только что создали, и он будет применён к финальному шаблону, совпадающему с индексом. Подробности следующие:
{ "template": { "настройки": { "index": { "жизненный цикл": { "Name": "Auto-clean-30-days-logger" } } }, "псевдонимы": {}, "mappings": {} }
}
Например, просмотрите интерфейс конфигурации политики:http://192.168.1.182:9200/_ilm/policy/auto-clean-30-days-logger?pretty
{ "auto-clean-30-days-logger" : { «версия» : 1, "modified_date" : "2022-03-11T06:26:01.972Z", "policy" : { «фазы» : { "горячий" : { "min_age" : "0ms", «действия» : { "set_priority" : { «Приоритет» : 100 } } }, "delete" : { "min_age" : "30d", «действия» : { "delete" : { "delete_searchable_snapshot" : true } } } } } }
}
ILM (Управление жизненным циклом индекса)
Наша новая политика жизненного цикла индекса реализуется с помощью временного опроса.
Служба ILM проводит опрос о политике исполнения в фоновом режиме:
ILM определяет четыре стадии жизненного цикла: Горячо: активно обновляю и отправляю запросы к индексу. Warm: Больше не обновляю индексы, но всё равно отправляю запросы. холодно: Индексы больше не обновлялись, несколько запросов. Информация всё равно должна быть доступна для поиска, но если запросы идут медленнее, это нормально. Удаление: Индекс больше не нужен и его можно безопасно удалить.
Периодическая работа ILM (indices.lifecycle.poll_interval),По умолчанию — 10 минутПроверить, соответствует ли индекс критериям политики, и предпринять все необходимые меры. Чтобы избежать гоночных ситуаций, ILM может придётся выполнять несколько раз, чтобы выполнить все необходимые шаги для выполнения действия. Таким образом, даже если indices.lifecycle.poll_interval установлен на 10 минут и индекс соответствует требованиям переноса, завершение переноса может занять 20 минут. Например, если мы установим более 10 документов для переноса, но поскольку этот процесс не реализован сразу, 11-я и 12-я статьи всё равно могут попасть в предыдущий индекс, а новые документы не попадут в новый индекс, пока перевод не будет успешным.
Настройки управления жизненным циклом индекса в Elasticsearch:Вход по гиперссылке виден.
Просмотр статуса ILM
Сейчас 2022-03-13, каждый день автоматически создаются 2 индекса, вы уже видите созданные индексыПолитики автоматически связаны, как показано на рисунке ниже:
(Конец)
|