Использование Logstash для удаления индекса из ES
Я хочу удалить индекс из ES
перед загрузкой обновленной версии данных из MySQL
, На сегодняшний день я использую curl для удаления данных и Logstash для загрузки, однако мне было интересно, есть ли способ, где мне не нужно делать это вручную, лучше всего иметь возможность использовать Logstash (с его планировщиком), чтобы получить его полностью автоматический. Скажите, есть ли способ просто написать что-то в моем конфигурационном файле, чтобы сделать это?
Как я удаляю сегодня:
curl -X -DELETE 'http://localhost:9200/index'
Причина, по которой я удаляю индекс перед загрузкой новых данных, заключается в том, что я загружаю данные, поступающие из различных источников, и поэтому решить, когда данные были обновлены, не так просто. Вот почему я решил удалить данные перед загрузкой обновленной версии. Если есть более разумный способ решения этой проблемы, я хотел бы услышать это.
1 ответ
Вы можете создать командный файл, который запускает процесс logstash и кураторские действия вместе.
Скачайте и установите куратор с помощью инструкции. Используйте командную строку куратора для выполнения действий над индексами. Для удаления проверьте действие Удалить индексы.
action: delete_indices
description: >-
Delete indices older than 45 days (based on index name), for logstash-
prefixed indices. Ignore the error if the filter does not result in an
actionable list of indices (ignore_empty_list) and exit cleanly.
options:
ignore_empty_list: True
disable_action: True
filters:
- filtertype: pattern
kind: prefix
value: %{Index_Name}
- filtertype: age
source: name
direction: older
timestring: '%Y.%m.%d'
unit: days
unit_count: 45