Я собираю журналы с filebeat из всех docker контейнеров, отправляя их в logsta sh, а из logsta sh перенаправляются в elasticsearch. Я бы хотел обновить свои индексы, которые создаются автоматически, если они слишком большие или слишком старые. Я тестировал несколько вариантов.
Use Elasticsearch ILM . Я создал политику my_policy1
, которая должна обновляться при превышении 5M, и шаблон template_charizard
:
{"index_patterns": ["printmessage_charizard *"], "settings": {"number_of_shards": 1, "number_of_replicas ": 1," index.lifecycle.name ":" my_policy1 "," index.lifecycle.rollover_alias ":" charizard-actual "}," aliases ": {" charizard-actual ": {" is_write_index ": true}} }
Это не сработает, мне нужно создать индекс с псевдонимом, в данном случае charizard-actual
вручную. Если я этого не сделаю, будет ошибка:
Rollover alias [charizard-actual] can point to multiple indices, found duplicated alias [[charizard-actual]] in index template [template_charizard]
Будет больше контейнеров, которые будут использоваться, поэтому я не могу вручную создавать индекс каждый раз, когда должен быть создан новый индекс. Я ожидал, что он будет создан автоматически.
ОБНОВЛЕНИЕ:
Я тестировал этот вариант (точно по руководству, с такими же именами), и он не работает . Он просто создает новый пустой индекс с номером приращения, но все журналы попадают в индекс bootstrap.
Я могу настроить logsta sh ILM . Это отлично работает, но я не могу использовать переменные в имени псевдонима, поэтому мне пришлось бы создавать вывод elasticsearch для каждого индекса и делать много ifs.
Я могу настроить filebeat ILM . Аналогичная проблема, как и с logsta sh. Я могу использовать переменную в псевдониме ролловера, но она жестко запрограммирована для всех индексов.
Я ожидаю, что я настрою некоторые политики, некоторые шаблоны и на основе регулярного выражения имени индекса будут быть шаблоном, примененным к индексу. Все параметры в основном полезны, каждый раз необходимо изменение вручную (отредактируйте logsta sh config) или запрос (сначала создайте индекс вручную).
Вопросы:
Какое лучшее решение для правильного ролловера?
Почему все должно быть жестко закодировано, тогда это очень сложно поддерживать.
По мне, куратор был бы лучшим решением , но тогда нет необходимости поддерживать другое приложение.
Может ли кто-нибудь объяснить мне использование всех опций ILM? Не могу представить, чтобы изменить конфигурацию для каждого нового индекса, даже сначала создать индекс вручную или использовать жестко заданный псевдоним для всех журналов, как в примере с filebeat. Может, я что-то упускаю.