Ответ
Основной способ — настройка автоматического удаления через Index Lifecycle Management (ILM). Я создаю политику ILM с фазой delete, которая срабатывает по достижении индексом определённого возраста или размера.
Пример политики для удаления индексов старше 30 дней:
PUT _ilm/policy/log_retention_policy
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_size": "50gb",
"max_age": "1d"
}
}
},
"delete": {
"min_age": "30d",
"actions": {
"delete": {}
}
}
}
}
}
Эта политика сначала переворачивает индекс при достижении лимитов, а затем удаляет его через 30 дней после создания. Я применяю её к индексам по шаблону, например logs-*.
Для ручного удаления использую API:
# Удалить конкретный индекс
DELETE /old-index-2024-01
# Удалить по шаблону (с осторожностью)
DELETE /app-logs-2023-*
Перед удалением я всегда проверяю, что данные не нужны для расследования инцидентов и что есть актуальные снапшоты в репозитории S3/MinIO, созданные через snapshot API.