Skip to content
/ osctl Public

Go-приложение для управления жизненным циклом индексов OpenSearch кластеров.

Notifications You must be signed in to change notification settings

flant/osctl

Repository files navigation

osctl - Инструмент управления жизненным циклом индексов и снапшотов OpenSearch

Ключевые функции в сравнении с iml - время создания снапшотов и индексов зашивается в конец их названия, сами снапшоты и индексы формируются логстешом. Политика ротации настраивается в одном месте конфигом. В конфиге прописываются для каждого интересующего нас префикса своя политика - сколько дней храним в кластере и сколько дней храним снапшоты каждого дня. Все индексы которые не попали в паттерны - управляются политикой unknown. Все делается кронджобами.

Фактически это замена curator с только нужными нам функциями.

Также есть ряд команд, которые решают специфичные проблемы - такие как вычисление оптимального числа шардов или автосоздание индекспаттернов.

По-умолчанию предполагается использование config.yaml в котором описаны параметры запуска и запуск через кронджобы с указанием команды.

Все, что указано в конфгиах можно переопределять через флаги и переменные, а также все команды поддерживают --dry-run.

Доступные команды (action)

Команда Назначение
snapshots Создание снапшотов согласно политикам в конфиге
snapshotsdelete Удаление снапшотов согласно политикам в конфиге
indicesdelete Удаление индексов согласно политикам в конфиге
snapshotschecker Нахождение отсутствующих снапшотов
retention Удаление индексов со снапшотами при превышении некоторого порога
dereplicator Уменьшение числа реплик у индексов со снапшотами
coldstorage Миграция в холодное хранилище при превышении числа дней
extracteddelete Удаление extracted индексов
danglingchecker Проверка dangling индексов
sharding Автоматическое выставление оптимального числа шардов
indexpatterns Управление index patterns в Kibana
datasource Создание Kibana data-source ( рековерер)
`snapshot-manual Создание только одного снапшота для индексов с определенным паттерном

Конфигурация

Общая конфигурация (config.yaml)

Пример в config.yaml

Конфигурация индексов (osctlindicesconfig.yaml)

Пример в config-example/osctlindicesconfig.yaml

Конфигурация тенантов (osctltenants.yaml)

Пример в config-example/osctltenants.yaml

Приоритет конфигурации

  1. Флаги командной строки (наибольший приоритет)
  2. Переменные окружения
  3. Общий конфиг (config.yaml)
  4. Значения по умолчанию (наименьший приоритет)

📚 Документация

  • ENVIRONMENT_VARIABLES_AND_FLAGS.md - Полный список всех флагов и переменных окружения
  • ARCHITECTURE.md - Подробные алгоритмы и архитектура приложения
  • DEVELOPMENT.md - Как вносить изменения и тестировать
  • Справка: osctl [команда] --help

About

Go-приложение для управления жизненным циклом индексов OpenSearch кластеров.

Resources

Stars

Watchers

Forks

Packages