Бывает такое, что нужно архивировать данные с возможностью быстрого поиска по данным.

Для начала, нужно определится с форматом самых индексов. Так как система может вместить много данных - то пока кластер будет один. Для этого заложим в имена класс данных - prod, sandbox и test.

Этими классами данных можно весьма легко разделить по паттернам для работы с шаблонами, жизненными циклами и остальными вещами. Мне удобно это все обявлять как префикс к имени индекса.

Для начала сделаем глобальные настройки

curl -k -XPUT -u elastic \
    -H "Content-Type: application/json" \
    'https://localhost:9200/_template/default' -d '{
  "index_patterns": ["*"],
  "settings": {
    "index": {
      "codec": "best_compression"
    }
  }
 }'
curl -k -XPUT -u elastic \
    -H "Content-Type: application/json" \
    'https://localhost:9200/_all/_settings' -d '{
  "index.number_of_replicas": "1",
  "index.number_of_shards": "2"
}'

Дальше делаем индивидуальные настройки

curl -k -XPUT -u elastic \
    -H "Content-Type: application/json" \
    'https://localhost:9200/_template/svc-sandbox' -d '{
  "index_patterns": ["sandbox-*"],
  "settings": {
    "index": {
      "number_of_replicas": "0",
      "number_of_shards": "2"
    }
  }
}'
curl -k -XPUT -u elastic \
    -H "Content-Type: application/json" \
    'https://localhost:9200/_template/svc-prod' -d '{
  "index_patterns": ["prod-*"],
  "settings": {
    "index": {
      "number_of_replicas": "1",
      "number_of_shards": "4"
    }
  }
}'
curl -k -XPUT -u elastic \
    -H "Content-Type: application/json" \
    'https://localhost:9200/_template/svc-test' -d '{
  "index_patterns": ["test-*"],
  "settings": {
    "index": {
      "number_of_replicas": "0",
      "number_of_shards": "1"
    }
  }
}'