Моя статья по установке и настройке системы сбора логов на основе ELK Stack получилась не полной без одного важного раздела. Сегодня расскажу, как настроить автоматическую очистку индексов elasticsearch с помощью curator. С этим столкнется каждый, кто будет эксплуатировать систему, так как она очень требовательна к ресурсам. Очистка старых индексов увеличивает быстродействие.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
Статья будет короткая, так как процесс очистки индексов в 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 утра.
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Зачем чистить индексы куратором зачем??? Из под коробки в новой версии elastic есть ротация и отлично работает!
В смысле зачем? Функционала по очистке индексов не было раньше. Он только появился.
Так я и говорю про сейчас, обновляется эластик и все будет норм
Не всегда можно взять и обновить кластер на новую версию. Можно потерять весь архив данных.
А не подскажете, в какой версии он появился? И как его настроить.
4 4 * * * /usr/bin/curator --config /etc/curator/config.yml /etc/curator/action.yml
Очистка индексов будет выполняться каждый день в 4 утра.
Так будет в 04-04 каждый день)
Мелочь, но.
0 4 * * * /usr/bin/curator --config /etc/curator/config.yml /etc/curator/action.yml
Очистка индексов будет выполняться каждый день в 4 утра.
Спасибо за статью.
Так то да, но лично я минуты никогда в 0 не ставлю, чтобы снизить вероятность пересечения задач по крону. Всегда разброс в минутах делаю.
Если необходимо очистить одним правилом несколько индексов, можно использовать regex примерно так:
Кто-то встречал такой пр и запуске отработке куратора возникает ошибка
"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) Вторую ошибку я не могу понять
Тут же явно написано, что версия Elasticsearch 6.6.2 не совместима с версией Curator 6.6.2. Звучит странно, так как версии, судя по всему, одинаковые. Но может там нумерация не параллельная. Попробуйте обновить Curator. Я не видел такой ошибки ни разу.
Спасибо за статью. Советую попробовать https://www.elastic.co/guide/en/kibana/current/index-lifecycle-policies.html. Сильно упростило жизнь.
/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) по дефолту ставить туда он.
Кроме того у меня нет nginx-* а есть только filebeat, metricbeat, packetbeat, heartbeat, Я взял и добавил их вместо nginx-*, в результате сообщила, что действия была пропущена, из-за Skipping action "close" due to empty list:
У меня кроме nginx, есть ещё apache2, mysql и т.д. Как я могу добавить их на этот action.yml
Было бы интересно почитать про бекап индексов. По это теме тяжело нормальные гайды найти
Когда разберу эту тему, напишу. Пока не занимался вопросом.
Спасибо
Я так понял что это только удаление. А статейки по индексов в эластике не планируется?