Использование Elasticsearch ILM без начальной загрузки первого индекса
Я пытаюсь установить политику ILM для кластера Elasticsearch из 3 узлов (горячий, теплый и холодный), чьи журналы поступают из Logstash. Мне нужно, чтобы индексы переворачивались после достижения определенного размера. Также название источника данных каждого журнала должно быть указано в названии индексов (например,
event-nxlog-2022.01.01-000001
). Проблема заключается в том, что, поскольку в проекте существует множество источников данных, для каждого источника данных необходимо загрузить множество индексов в качестве первого индекса, а многие файлы конфигурации logstash должны быть изменены.
По поводу предоставленного описания у меня 2 вопроса:
1- Необходимо ли, чтобы политика ILM упоминалась в выходном плагине Logstash с использованием
ilm_enabled
,
ilm_policy
,
ilm_rollover_alias
и
ilm_pattern
настройки? Есть ли способ вместо этого использовать только имя индекса и позволить elasticsearch управлять самим ILM?
2- Должны ли загружаться первые индексы каждого источника данных? Есть ли способ создать первые индексы и автоматически их перевернуть? или какой-либо способ загрузить все индексы с помощью одного запроса с использованием шаблонов индексов?
1 ответ
Если все индексы могут иметь одну и ту же политику ILM, можно заменить политику logstash по умолчанию, как показано ниже:
logstash:
image: logstash:7.17.7
environment:
- STDOUT=true
volumes:
- ./logstash/logstash.yaml:/etc/logstash.yaml:ro
- ./logstash/ilm-policy.json:/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-elasticsearch-11.4.1-java/lib/logstash/outputs/elasticsearch/default-ilm-policy.json:ro
command: 'logstash -f /etc/logstash.yaml'
Это будет работать, если эластичные данные создаются с нуля, например, после загрузки данных кластера. Я открыл запрос функции для эластичного плагина logstash, чтобы добавить параметр вывода, который позволил бы настроить пользовательский файл политики ILM.