wiki-js/DevOps/ELK/Rotation-logs-ILM.md

146 lines
6.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Ротация логов с помощью Lificycle
description: ILM
published: true
date: 2025-03-13T08:16:59.504Z
tags: ilm, elk, efk
editor: markdown
dateCreated: 2025-03-13T08:16:59.504Z
---
# Ротация логов в ELK
Конечно! Давайте разберем настройку ротации логов с помощью ILM (Index Lifecycle Management) в Elasticsearch простым языком. Это пошаговая инструкция, которая поможет вам настроить автоматическое управление жизненным циклом индексов (логов).
---
### **1. Что такое ротация логов с ILM?**
Ротация логов — это процесс автоматического создания новых индексов (например, когда текущий индекс становится слишком большим или старым) и удаления старых индексов, чтобы освободить место. ILM помогает автоматизировать этот процесс.
---
### **2. Основные шаги настройки ILM для ротации логов:**
#### **Шаг 1: Создайте алиас для индексов**
Алиас — это "псевдоним", который будет указывать на текущий активный индекс. Все новые данные будут писаться в индекс, на который указывает этот алиас.
Пример:
```bash
PUT _aliases
{
"actions": [
{
"add": {
"index": "logs-2023.10.01-000001", # текущий индекс
"alias": "logs-alias" # алиас
}
}
]
}
```
---
#### **Шаг 2: Создайте политику ILM**
Политика ILM определяет, что делать с индексами на разных этапах их жизни (например, когда переходить на новый индекс, когда удалять старые данные).
Пример политики:
```bash
PUT _ilm/policy/logs-policy
{
"policy": {
"phases": {
"hot": { # этап "горячих" данных
"actions": {
"rollover": { # ротация индекса
"max_size": "50gb", # ротация при достижении 50 ГБ
"max_age": "7d" # или через 7 дней
}
}
},
"delete": { # этап удаления
"min_age": "30d", # удалить через 30 дней
"actions": {
"delete": {} # действие — удалить индекс
}
}
}
}
}
```
---
#### **Шаг 3: Создайте шаблон индекса**
Шаблон индекса автоматически применяет настройки (например, политику ILM и алиас) к новым индексам, которые соответствуют определенному шаблону имени.
Пример шаблона:
```bash
PUT _index_template/logs-template
{
"index_patterns": ["logs-*"], # шаблон имени индекса
"template": {
"settings": {
"index.lifecycle.name": "logs-policy", # применяем политику ILM
"index.lifecycle.rollover_alias": "logs-alias" # указываем алиас
}
}
}
```
---
#### **Шаг 4: Создайте начальный индекс**
Создайте первый индекс, который будет использоваться для записи данных. Убедитесь, что он соответствует шаблону и имеет алиас.
Пример:
```bash
PUT logs-2023.10.01-000001
{
"aliases": {
"logs-alias": {} # назначаем алиас
}
}
```
---
#### **Шаг 5: Настройте сбор логов**
Убедитесь, что ваши логи (например, из Filebeat, Logstash или другого источника) пишутся в алиас `logs-alias`. Это гарантирует, что данные будут попадать в текущий активный индекс.
---
#### **Шаг 6: Проверка работы ILM**
- Когда текущий индекс достигнет 50 ГБ или пройдет 7 дней, ILM создаст новый индекс (например, `logs-2023.10.08-000002`) и перенаправит запись на него.
- Старые индексы будут автоматически удаляться через 30 дней.
---
### **3. Как проверить, что все работает?**
- Проверьте статус ILM:
```bash
GET _ilm/status
```
- Посмотрите информацию по конкретному индексу:
```bash
GET logs-2023.10.01-000001/_ilm/explain
```
- Убедитесь, что новые индексы создаются, а старые удаляются.
---
### **4. Пример полного цикла:**
1. Создаете алиас `logs-alias` и первый индекс `logs-2023.10.01-000001`.
2. Данные начинают писаться в `logs-2023.10.01-000001`.
3. Через 7 дней или при достижении 50 ГБ создается новый индекс `logs-2023.10.08-000002`, и данные начинают писаться туда.
4. Через 30 дней индекс `logs-2023.10.01-000001` автоматически удаляется.
---
### **5. Частые ошибки:**
- **Алиас не указан:** Убедитесь, что алиас указан в шаблоне индекса и в самом индексе.
- **Политика не применяется:** Проверьте, что политика ILM указана в шаблоне индекса.
- **Нет данных для ротации:** Убедитесь, что данные пишутся в алиас.
---
Если все настроено правильно, ILM будет автоматически управлять вашими индексами, и вам не придется вручную заниматься ротацией логов. 😊