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