Logstash заменить старый индекс

Я использую logstash для создания эластичного индекса. Шаги: 1. запуск logstash 2. извлечение данных с помощью входного плагина jdbc 3. данные индексируются с помощью выходного плагина asticsearch (с шаблоном, содержащим псевдоним) 4. остановка logstash

Время, я получил индексный вызов myindex-1, который можно запросить с помощью псевдонима myindex. Во второй раз у меня есть индексный вызов myindex-2, который можно запросить с помощью псевдонима myindex. Первый индекс устарел, и мне нужно удалить его непосредственно перед (или после шага 4).

Ты знаешь как это сделать?

1 ответ

Перво-наперво, если вы знаете устаревшее имя индекса, тогда это просто вопрос добавления шага 5:

curl -XDELETE 'http://localhost:9200/myindex-1'

Таким образом, вы добавите в свой скрипт logstash этот дополнительный шаг - насколько мне известно, у logstash нет возможности удалить индекс, это просто не его цель.

Но из того, как вы описываете свою ситуацию, кажется, что вы пытаетесь сохранить данные доступными во время создания нового индекса, не могли бы вы немного рассказать о вашем сценарии использования?

Причина для того, чтобы спросить, состоит в том, что в текущей процедуре вы, вероятно, в итоге получите дублированные данные (старую и новую версию) в течение периода индексации.

Если действительно необходимо обновить данные и предположить, что у вас есть идентификатор в данных, извлеченных из БД, вы можете рассмотреть другой подход: настройка 2 выходов эластичного поиска в вашем logstash, первый с действием, настроенным на "удаление" таргетинга старая запись в предыдущем индексе, вторая - это стандартное создание нового индекса.

В зависимости от характера ваших данных, могут быть и другие возможности.

  1. Создайте и заполните myindex-2, пока не используйте псевдоним
  2. Одновременно добавьте псевдоним к myindex-2 и удалите его из myalias-1

Запрос REST для шага 2:

POST /_aliases
{
    "actions" : [
        { "remove" : { "index" : "myindex-1", "alias" : "myindex" } },
        { "add"    : { "index" : "myindex-2", "alias" : "myindex" } }
    ]
}

Документация здесь

Другие вопросы по тегам