Не переезжает Master-нода в кластере

Коллеги, привет.
Помогите, пожалуйста.
У меня кластер из 11 нод 2 мастера, 1 голосующая, 2 инжест-ноды.
При выключении одной ноды клсатера, мастер не выбирается.
Конфигурация мастер нод вот такая (см. ниже).
Подскажите, что я делаю ни так.
Заранее спасибо.

КОНФИГ

cluster.name: general-monitoring-bank
path.data: /mnt/data/elasticsearch
# Path to log files:
path.logs: /var/log/elasticsearch
network.host: elk-mon
http.port: 9200
bootstrap.memory_lock: true
discovery.seed_hosts:
- elk-mon.ru
- elk-01.ru
- elk-data01.ru
- elk-data03.ru
- elk-data05.ru
- elk-02.ru
- elk-data02.ru
- elk-data04.ru
- elk-data06.ru
- elk-ingest01.ru
- elk-ingest02.ru
cluster.initial_master_nodes:
- elk-mon.ru
- elk-01.ru
- elk-02.ru

discovery.zen.minimum_master_nodes: 2

http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: false
node.ingest: false

#ЛОГ#
В логе вот такие ошибка (см.ниже)

[2019-10-24T19:24:47,181][WARN ][o.e.c.c.ClusterFormationFailureHelper] [elk-01.ru] master not discovered or elected yet, an election requires a node with id [3RKJOKcaQgOChOepvbL9RQ], 
have discovered 
[{elk-01.ru}{i3bnLLqXTPqm6clRS4Y9Iw}{fThkgADFTEmSNQvmeHtylA}{elk-01.ru}{172.16.8.237:9300}{m}{ml.machine_memory=8428003328, xpack.installed=true, ml.max_open_jobs=20}, 
{elk-mon.ru}{DVKojtqkR4eWyPPdy9uQjw}{zPWTu0HIQky0YMIHPolM1A}{elk-mon.ru}{172.16.8.242:9300}{m}{ml.machine_memory=8428003328, ml.max_open_jobs=20, xpack.installed=true}] 
which is not a quorum; 
discovery will continue using [172.16.8.242:9300, 172.16.8.239:9300, 172.16.8.240:9300, 172.16.8.241:9300, 172.16.10.80:9300, 172.16.10.82:9300, 172.16.10.83:9300, 172.16.10.84:9300, 172.16.8.238:9300, 172.16.10.81:9300] 
from hosts providers and 
[{elk-02.ru}{3RKJOKcaQgOChOepvbL9RQ}{_n94a30KQrCW8UEL9GzAWg}{elk-02.ru}{172.16.10.80:9300}{m}{ml.machine_memory=8427999232, ml.max_open_jobs=20, xpack.installed=true}, 
{elk-mon.ru}{DVKojtqkR4eWyPPdy9uQjw}{zPWTu0HIQky0YMIHPolM1A}{elk-mon.ru}{172.16.8.242:9300}{m}{ml.machine_memory=8428003328, ml.max_open_jobs=20, xpack.installed=true}, 
{elk-01.ru}{i3bnLLqXTPqm6clRS4Y9Iw}{fThkgADFTEmSNQvmeHtylA}{elk-01.ru}{172.16.8.237:9300}
{m}{ml.machine_memory=8428003328, xpack.installed=true, ml.max_open_jobs=20}] 
from last-known cluster state; node term 16, last-accepted version 4609 in term 16

Какая версия и как выглядит metadata/cluster_coordination в GET _cluster/state?

Спасибо за ответ
Первая команда выдаёт ошибку, может имелось в виду что-то в этом роде:
GET / _cluster / state ? filter_path = metadata.cluster_coordination.last_committed_config

По второй команде 100тыс строк :slight_smile: в какой именно блок мне посмотреть?

"Первая команда" это не команда. Эта часть вывода "второй команды" на которую надо смотреть

Добрый день!
Версия 7.3.2
cluster_coordination в `GET _cluster/state ниже.
Заранее спасибо за ответ.

metadata" : {
    "cluster_uuid" : "CPeT2VlqSdq6BSh0JPj1-w",
    "cluster_coordination" : {
      "term" : 17,
      "last_committed_config" : [
        "3RKJOKcaQgOChOepvbL9RQ"
      ],
      "last_accepted_config" : [
        "3RKJOKcaQgOChOepvbL9RQ"
      ],
      "voting_config_exclusions" : [
        {
          "node_id" : "DVKojtqkR4eWyPPdy9uQjw",
          "node_name" : "elk-mon.ru"
        }
      ]

Сложно сказать, как так получилось, но в данный момент у вас в кластере только 2 узла участвуют в выборах - elk-02.ru и elk-mon.ru, и по какой-то причине elk-mon.ru исключен из голосования? Я пытался воспроизвести эту ситуация и у меня что-то не получается. Вы какие-то узлы перестроили после начальной настройки кластера?

Как элемент nodes в данный момент выглядит?

Спасибо за ответ!
Сегодня я удалил исключение из голосования ноду elk-mon.ru командой
DELETE /_cluster/voting_config_exclusions?wait_for_removal=false
Теперь voting_config_exclusions" : пуст.
Что касается перестройки узлов после начальной настройки кластера - тут сложно сказать, мне по наследству кластер достался.
На счет элемента nodes
"nodes" : {
"count" : {
"total" : 11,
"coordinating_only" : 0,
"data" : 6,
"ingest" : 2,
"master" : 3,
"voting_only" : 0
},
"versions" : [
"7.3.2"

Тут еще, что в этом списке узлов, важно:

      "last_committed_config" : [
        "3RKJOKcaQgOChOepvbL9RQ"
      ],
      "last_accepted_config" : [
        "3RKJOKcaQgOChOepvbL9RQ"
      ],

Он содержит список узлов, которые в данный момент отвечают за выборы. Узлы - кандидаты в мастера, которые успешно соединились с кластером, должны там появиться. Я думаю, что поскольку elk-mon.ru был исключен, то elk-01 туда не подключался, потому что 2 узла не могут участвовать в выборах. Если у вас сейчас там 3 записи - то все должно работать.

Да в обоих блоках по 3 ноды. Сегодня попробуем протестировать отключив одну ноду.
Спасибо большое за помощь

  "metadata" : {
    "cluster_coordination" : {
      "last_committed_config" : [
        "3RKJOKcaQgOChOepvbL9RQ",
        "i3bnLLqXTPqm6clRS4Y9Iw",
        "DVKojtqkR4eWyPPdy9uQjw"
      ]
    }
  }
}

{
  "metadata" : {
    "cluster_coordination" : {
      "last_accepted_config" : [
        "3RKJOKcaQgOChOepvbL9RQ",
        "i3bnLLqXTPqm6clRS4Y9Iw",
        "DVKojtqkR4eWyPPdy9uQjw"
      ]
    }
  }
}```

В общем теперь всё переезжает, но вопрос в том, как мне сделать так чтобы на elk-mon.ru участвовал в голосовании, но никогда не становился активным мастером?

Надо добавить node.voting_only: true в конфигурацию elk-mon.ru.

А на двух оставшихся master-нодах требуется добавить?
node.voting_only: false ?

Это не обязательно. false - это значение по умолчанию. Посмотрите документацию.

Все заработало!
Огромное спасибо!

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.