J'ai configuré la recherche élastique avec 3 nœuds. Mon cluster ne parvient pas à trouver le nœud principal.
Logs de recherche élastique
[2018-02-24T02:39:39,106][INFO ][o.e.d.z.ZenDiscovery ] [node3] failed to send join request to master [{node1}{MO28S_KZQaih1pd-ERrvIA}{SBwZDgFcTz2xTLOyh2fZAA}{192.168.2.xxx}{192.168.2.xxx:9300}], reason [RemoteTransportException[[node1][192.168.2.xxx:9300][internal:discovery/zen/join]]; nested: NotMasterException[Node [{node1}{MO28S_KZQaih1pd-ERrvIA}{SBwZDgFcTz2xTLOyh2fZAA}{192.168.2.xxx}{192.168.2.xxx:9300}] not master for join request]; ], tried [3] times
[2018-02-24T02:39:42,332][INFO ][o.e.d.z.ZenDiscovery ] [node3] failed to send join request to master [{node1}{MO28S_KZQaih1pd-ERrvIA}{SBwZDgFcTz2xTLOyh2fZAA}{192.168.2.xxx}{192.168.2.xxx:9300}], reason [RemoteTransportException[[node1][192.168.2.xxx:9300][internal:discovery/zen/join]]; nested: NotMasterException[Node [{node1}{MO28S_KZQaih1pd-ERrvIA}{SBwZDgFcTz2xTLOyh2fZAA}{192.168.2.xxx}{192.168.2.xxx:9300}] not master for join request]; ], tried [3] times
Mon fichier elasticsearch.yml
cluster.name: cluster-testing
node.name: node3
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.Host: 192.168.2.xxx
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.2.xxx", "192.168.2.xxx",
"192.168.2.xxx"]
discovery.zen.minimum_master_nodes: 2
gateway.recover_after_nodes: 2
gateway.expected_nodes: 3
Je ne suis pas capable de trouver où est le problème
Pour transformer un nœud en nœud maître, vous devez ajouter
node.master: true
dans elasticsearch.yml.
De votre configuration
discovery.zen.minimum_master_nodes: 2
au moins deux de vos noeuds doivent définir node.master sur true
MODIFIER:
vous trouverez ci-dessous la configuration de travail pour notre projet (3 * maîtres et 6 * esclaves):
MAÎTRISER:
cluster.name: VAL_elasticsearch
node.name: MASTER-${HOSTNAME}
node.data: false
node.master: true
path.data: /data
path.logs: /local/opt/logs
path.repo: ["/home/data_ElasticSearchBackup"]
bootstrap.memory_lock: true
bootstrap.seccomp: false
network.Host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["ip_master1","ip_master2","ip_masterx"]
discovery.zen.minimum_master_nodes: 2
ESCLAVE:
cluster.name: VAL_elasticsearch
node.name: DATA-${HOSTNAME}
node.data: true
node.master: false
path.data: /data
path.logs: /local/opt/logs
path.repo: ["/home/data_ElasticSearchBackup"]
bootstrap.memory_lock: true
bootstrap.seccomp: false
network.Host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["ip_master1","ip_master2","ip_masterx"]
discovery.zen.minimum_master_nodes: 2
Etes-vous sûr que tous les ports sont ouverts entre toutes les instances élastiques?
J'ai fait face à une erreur similaire, mais mon cas était un peu différent.
J'essayais de démarrer 2 nœuds ES sur le même ordinateur. J'avais copié mon répertoire ES pour démarrer un nouveau nœud et je recevais RemoteTransportException
cette exception.
Après avoir cherché un peu sur Google, j'ai découvert que je devais supprimer le répertoire nodes
du répertoire copié pour amorcer ce nœud. Ce répertoire est généralement présent dans {ES_HOME}/data/nodes
ou /var/lib/elasticsearch/nodes
.
Source: https://github.com/elastic/elasticsearch/issues/21405