Индекс Elasticsearch не создается с настройками из шаблона logstash - PullRequest
0 голосов
/ 24 октября 2019

У меня есть массовая загрузка для нового индекса, который я отправляю в мой кластер ES из logstash. Поэтому я хочу, чтобы репликация и обновление были отключены до завершения загрузки, и я снова включу эти значения после завершения загрузки.

У меня есть файл конфигурации, который выглядит следующим образом

input {
      stdin { type => stdin }
}
filter {
  csv {
     separator => " "
     columns => [ ...]
  }
}

output {
   amazon_es {
     hosts =>
         ["my-domain.us-east-1.es.amazonaws.com"]
     index => "my-index"
     template => "conf/my-index-template.json"
     template_name => "my-index-template-name"
     region => "us-east-1"
  }
}

И файл шаблона выглядит следующим образом:

{
    "template" : "my-index-template-name",
    "mappings" : {
      ...
    },
    "settings" : {
      "index" : {
        "number_of_shards" : "48",
        "number_of_replicas" : "0",
        "refresh_interval": "-1"
      }
    }
}

И когда я запускаю logstash и захожу посмотреть на настройки этого индекса, все соответствия этого шаблона уважаются, что хорошо, но всев разделе settings игнорируется и принимает значения по умолчанию (то есть number_of_shards=5 и number_of_replicas=1)

Некоторые примечания к исследованию: Если я получу шаблон после его установки изСам ES вижу правильные значения в шаблоне (как для mappings, так и для settings). Похоже, они просто не применяются к индексу

Также, если я возьму содержимое файла шаблона и создаю индекс вручную без PUT, он будет отображаться так, как я ожидал

Моя версия logstash - 7.3.0, а моя версияasticsearch - 6.7

Не уверен, что я здесь не так делаю

1 Ответ

2 голосов
/ 24 октября 2019

Ваше имя индекса my-index, но для настройки шаблона в вашем отображении используется my-index-template-name, оно должно быть регулярным выражением или именем, совпадающим с вашим индексом.

Поскольку вы используетеasticsearch 6.7вы должны использовать index_patterns вместо template в вашем отображении.

{
    "index_patterns" : ["my-index"],
    "mappings" : {
      ...
    },
    "settings" : {
      "index" : {
        "number_of_shards" : "48",
        "number_of_replicas" : "0",
        "refresh_interval": "-1"
      }
    }
}
...