Home » ELK Stack » Очистка elasticsearch с помощью curator

Очистка elasticsearch с помощью curator

Моя статья по установке и настройке системы сбора логов на основе ELK Stack получилась не полной без одного важного раздела. Сегодня расскажу, как настроить автоматическую очистку индексов elasticsearch с помощью curator. С этим столкнется каждый, кто будет эксплуатировать систему, так как она очень требовательна к ресурсам. Очистка старых индексов увеличивает быстродействие.

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Курс стоящий, все подробности читайте по ссылке. Есть бесплатные курсы.

Статья будет короткая, так как процесс очистки индексов в elasticsearch с помощью curator в базовом варианте очень прост.

Установка curator

Для начала установим curator. Сделать это можно разными способами. Самый простой — из репозитория packages.elastic.co от авторов продукта. Подключим его в CentOS 7.

# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
# mcedit /etc/yum.repos.d/curator.repo
[curator-5]
name=CentOS/RHEL 7 repository for Elasticsearch Curator 5.x packages
baseurl=https://packages.elastic.co/curator/5/centos/7
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

Подключаем репозиторий в Debian 8/Ubuntu

# wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
# mcedit /etc/apt/sources.list.d/curator.list
deb [arch=amd64] https://packages.elastic.co/curator/5/debian stable main

Отдельный репозиторий для Debian 9

# deb [arch=amd64] https://packages.elastic.co/curator/5/debian9 stable main

Устанавливаем curtator:

# yum install elasticsearch-curator
# apt update && apt install elasticsearch-curator

Так же curator можно установить через pip. Как установить pip в CentOS 7 я рассказывал отдельно. Для Debian/Ubuntu достаточно просто выполнить:

# apt install python-pip

Установка curator через pip:

# pip install elasticsearch-curator

Настройка curator для очистки elasticsearch

Сделаем для примера простое задание на закрытие и удаление индексов с шаблоном nginx-* старше 14-ти дней. Для этого создадим директорию для конфигов curator и сами конфиги.

# mkdir /etc/curator
# touch /etc/curator/action.yml
# touch /etc/curator/config.yml

Заполняем файлы следующим содержимым. Сначала общий конфиг.

# mcedit /etc/curator/config.yml
client:
  hosts:
    - 127.0.0.1
  port: 9200
  url_prefix:
  use_ssl: False
  certificate:
  client_cert:
  client_key:
  ssl_no_validate: False
  http_auth:
  timeout: 30
  master_only: False

logging:
  loglevel: INFO
  logfile:
  logformat: default
  blacklist: ['elasticsearch', 'urllib3']

Дальше файл с необходимыми действиями:

# mcedit /etc/curator/action.yml
actions:
  1:
    action: close
    description: >-
      Close indices older than 14 days (based on index name).
    options:
      ignore_empty_list: True
      delete_aliases: False
      disable_action: False
    filters:
    - filtertype: pattern
      kind: prefix
      value: nginx-
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 14

  2:
    action: delete_indices
    description: >-
      Delete indices older than 14 days (based on index name).
    options:
      ignore_empty_list: True
      disable_action: False
    filters:
    - filtertype: pattern
      kind: prefix
      value: nginx-
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 14

Обращаю внимание на форматирование файла. Отступы в начале строки важны. Они должны быть именно такие, как у меня в примере.

Конфиг сделан на основе примеров из официальной документации. Рекомендую все подробности искать там. Запускаем очистку:

# /usr/bin/curator --config /etc/curator/config.yml /etc/curator/action.yml

В консоли увидите информативный вывод выполняемых команд по очистке индексов. После завершения очистки, не забудьте добавить задание в cron.

# crontab -e
4 4 * * * /usr/bin/curator --config /etc/curator/config.yml /etc/curator/action.yml

Очистка индексов будет выполняться каждый день в 4 утра.

Онлайн курс Основы сетевых технологий

Теоретический курс с самыми базовыми знаниями по сетям. Курс подходит и начинающим, и людям с опытом. Практикующим системным администраторам курс поможет упорядочить знания и восполнить пробелы. А те, кто только входит в профессию, получат на курсе базовые знания и навыки, без воды и избыточной теории. После обучения вы сможете ответить на вопросы:
  • На каком уровне модели OSI могут работать коммутаторы;
  • Как лучше организовать работу сети организации с множеством отделов;
  • Для чего и как использовать технологию VLAN;
  • Для чего сервера стоит выносить в DMZ;
  • Как организовать объединение филиалов и удаленный доступ сотрудников по vpn;
  • и многое другое.
Уже знаете ответы на вопросы выше? Или сомневаетесь? Попробуйте пройти тест по основам сетевых технологий. Всего 53 вопроса, в один цикл теста входит 10 вопросов в случайном порядке. Поэтому тест можно проходить несколько раз без потери интереса. Бесплатно и без регистрации. Все подробности на странице .
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Помогла статья? Есть возможность отблагодарить автора

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

11 комментариев

  1. Аватар

    Кто-то встречал такой пр и запуске отработке куратора возникает ошибка

    «Unable to create client connection to Elasticsearch. Error: Elasticsearch version 6.6.2 incompatible with this version of Curator (6.6.2)»

    Я так понял что это две ошибки
    1) Не может подключится к Elasticsearch — хотя айпи правильный — что может быть ?
    2) Вторую ошибку я не могу понять

    • Zerox

      Тут же явно написано, что версия Elasticsearch 6.6.2 не совместима с версией Curator 6.6.2. Звучит странно, так как версии, судя по всему, одинаковые. Но может там нумерация не параллельная. Попробуйте обновить Curator. Я не видел такой ошибки ни разу.

  2. Аватар

    Спасибо за статью. Советую попробовать https://www.elastic.co/guide/en/kibana/current/index-lifecycle-policies.html. Сильно упростило жизнь.

  3. Аватар

    /usr/local/bin/curator —config /etc/curator/config.yml /etc/curator/action.yml
    -bash: /usr/local/bin/curator: No such file or directory

    • Аватар
      Станислав

      Нужно путь указывать /usr/bin/curator —config /etc/curator/config.yml /etc/curator/action.yml (без local) по дефолту ставить туда он.

  4. Аватар

    Кроме того у меня нет nginx-* а есть только filebeat, metricbeat, packetbeat, heartbeat, Я взял и добавил их вместо nginx-*, в результате сообщила, что действия была пропущена, из-за Skipping action «close» due to empty list:

  5. Аватар

    У меня кроме nginx, есть ещё apache2, mysql и т.д. Как я могу добавить их на этот action.yml

  6. Аватар

    Было бы интересно почитать про бекап индексов. По это теме тяжело нормальные гайды найти

  7. Аватар
    Станислав

    Я так понял что это только удаление. А статейки по индексов в эластике не планируется?

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

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.