Elasticsearch Searchguard неназначенные осколки - PullRequest
1 голос
/ 14 апреля 2020

Я столкнулся с проблемой с неназначенными осколками поисковой гвардии, когда добавил новые узлы в кластер ElasticSearch. Кластер находится в publi c -cloud и имеет включенную настройку осведомленности с node.awareness.attributes: Availability_zone . По умолчанию в Searchguard включено автоматическое расширение счетчика реплик. Проблема повторяется, когда у меня есть три узла в одной зоне и по одному в двух других зонах:

  • eu-central-1a = 3 узла
  • eu-central-1b = 1 узел
  • eu-central-1 c = 1 узел

Я понимаю, что конфигурация кластера не сбалансирована, это просто повторение проблемы производства. Я просто хочу понять логику c эластичного поиска и поисковой охраны. Почему это вызывает такую ​​проблему. Итак, вот моя конфигурация

{
  "cluster_name" : "test-cluster",
  "status" : "yellow",
  "timed_out" : false,
  "number_of_nodes" : 8,
  "number_of_data_nodes" : 5,
  "active_primary_shards" : 1032,
  "active_shards" : 3096,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 1,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 99.96771068776235
}

индексы

health status index                                 uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   searchguard                           GuL6pHCUTUKbmygbIsLAYw   1   4          5            0    131.3kb         35.6kb

объяснение

"deciders" : [
        {
          "decider" : "same_shard",
          "decision" : "NO",
          "explanation" : "the shard cannot be allocated to the same node on which a copy of the shard already exists [[searchguard][0], node[a59ptCI2SfifBWmnmRoqxA], [R], s[STARTED], a[id=d3rMAN8xQi2xrTD3y_SUPA]]"
        },
        {
          "decider" : "awareness",
          "decision" : "NO",
          "explanation" : "there are too many copies of the shard allocated to nodes with attribute [aws_availability_zone], there are [5] total configured shard copies for this shard id and [3] total attribute values, expected the allocated shard count per attribute [3] to be less than or equal to the upper bound of the required number of shards per attribute [2]"
        }
      ]

searchguard config

{
  "searchguard" : {
    "settings" : {
      "index" : {
        "number_of_shards" : "1",
        "auto_expand_replicas" : "0-all",
        "provided_name" : "searchguard",
        "creation_date" : "1554095156112",
        "number_of_replicas" : "4",
        "uuid" : "GuL6pHCUTUKbmygbIsLAYw",
        "version" : {
          "created" : "6020499"
        }
      }
    }
  }
}

вопросы, которые у меня есть:

  • В конфигурации searchguard указано "number_of_replicas" : "4",, а в объяснениях распределителя указано there are [5] total configured shard copies, так 5 это с основной репликой? Даже если это так ...
  • в чем проблема поместить все эти осколки (3) в одну зону (eu-central-1a), даже если зона будет разрушена, у нас будет две копии в других зонах, не так ли? этого достаточно, чтобы восстановить?
  • , как Flexiblesearch вычисляет эти условия required number of shards per attribute [2]. Учитывая это ограничение, я могу повысить только до 2 * zone_count (2 * 3 = 6) для моего кластера. Это действительно не так много. Похоже, должны быть способы преодоления этого ограничения.
...