[6.2.2] je n'arrive pas à créer mon cluster elasticsearch - ou peut être est il créé mais je ne le sais pas

Bonjour, je veux monter un cluster ES de 3 machines avec x-pack.

J'ai commencé par monter 1 host avec mes données historiques métier, x-pack, kibana
Mon host a 2 cartes réseau, une connectée à internet et l'autre sur un réseau privé avec mes 2 autres machines du futur cluster. Pourquoi 2 cartes réseau? ben pour que mon cluster communique sur le port 9300 de la manière la plus opaque possible, et parce que j'ai des filebeat qui sont sur des host remote et qui poussent les données ( j'ai mis du IP-filtering de x-pack/security maitriser un peu cela).

J'ai rajouté une couche de firewall UFW sur l'interface publique (internet).

Donc 1 machine, 1 noeud, tout marche bien. Maintenant, je veux scaler:

Je crée 2 autres machines, elles ne communiquent toujours pas ensemble car j'ai pas configuré le discovery.zen.ping.unicast.hosts Chacune tourne sur son host, pas de probleme, je vois ca dans les kibana respectifs.

Sur ces 2 autres machines, je ne pousse pas les données historiques.

voici ma configuration. elle est la même sur les 3 machines (script ansible)

cluster.name: wilco-lake
node.name: wilco-2
path.data: /home/wilco/data/elasticsearch
path.logs: /home/wilco/logs
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/${node.name}.p12
xpack.security.transport.ssl.truststore.path: certs/${node.name}.p12
xpack.security.audit.enabled: false
xpack.security.audit.outputs: [ ]
xpack.security.transport.filter.allow: [***les IP que j'autorise, en gros mes filebeats et les IP privées de mon cluster***]
xpack.security.transport.filter.deny: _all
xpack.security.audit.index.settings:
  index:
    number_of_shards: 1
    number_of_replicas: 1
xpack.notification.email.account:
    gmail_account:
        profile: gmail
        smtp:
            auth: true
            starttls.enable: true
            host: smtp.gmail.com
            port: 587
            user: *********
            password: **********
network.host: 0.0.0.0
network.publish_host: _enp1s0f1_ ***interface réseau de mon réseau privé***

DOnc j'ai lancé les 3 instances, chacune marche unitairement, je les stop. Je vérifie que les ports sont bien ouverts sur le réseau privé (nc -z <IP> 9300)
Les machines communiquent OK sur le réseau privé.

Je rajoute ces lignes à la conf:

discovery.zen.ping.unicast.hosts: [***les IP de mon réseau privé***]
discovery.zen.minimum_master_nodes: 1

et je lance toutes les instances. et voici mon état:

je me retrouve avec 2 clusters. On dirait qu'il y a l'ancien et le nouveau:

Ensuite, j'ai plein d'erreurs dans la console, et notament des problemes comme celui là:

[2018-04-18T16:24:25,177][WARN ][o.e.g.DanglingIndicesState] [wilco-2] [[.watches/fYlzbpcFT--qfqGUrVRGxA]] can not be imported as a dangling index, as index with same name already exists in cluster metadata

ou encore:

[2018-04-18T16:24:40,327][ERROR][o.e.x.w.t.s.ExecutableScriptTransform] [wilco-2] failed to execute [script] transform for [UTIZbUvoTtizEv91Q260jQ_elasticsearch_cluster_status_ad1b7841-8957-45e4-8bad-036a91957c7b-2018-04-18T14:24:40.281Z]
org.elasticsearch.script.ScriptException: runtime error
	at org.elasticsearch.painless.PainlessScript.convertToScriptException(PainlessScript.java:101) ~[?:?]
	at org.elasticsearch.painless.PainlessScript$Script.execute(ctx.vars.email_recipient = (ctx.payload.kibana_settings.hits.total > 0) ? ctx.payload.kibana_settings.hits.hits[0]._source.kibana_settings.xpack.default_admin_email : null;ctx.vars.is_new = ctx.vars.fails_check && !ctx.vars.not_resolved;ctx.vars.is_resolve ...:1070) ~[?:?]
	at org.elasticsearch.painless.ScriptImpl.run(ScriptImpl.java:105) ~[?:?]
	at org.elasticsearch.xpack.watcher.transform.script.ExecutableScriptTransform.doExecute(ExecutableScriptTransform.java:69) ~[x-pack-watcher-6.2.2.jar:6.2.2]
	at org.elasticsearch.xpack.watcher.transform.script.ExecutableScriptTransform.execute(ExecutableScriptTransform.java:53) ~[x-pack-watcher-6.2.2.jar:6.2.2]
	at org.elasticsearch.xpack.watcher.transform.script.ExecutableScriptTransform.execute(ExecutableScriptTransform.java:38) ~[x-pack-watcher-6.2.2.jar:6.2.2]
	at org.elasticsearch.xpack.watcher.execution.ExecutionService.executeInner(ExecutionService.java:481) ~[x-pack-watcher-6.2.2.jar:6.2.2]
	at org.elasticsearch.xpack.watcher.execution.ExecutionService.execute(ExecutionService.java:322) ~[x-pack-watcher-6.2.2.jar:6.2.2]
	at org.elasticsearch.xpack.watcher.execution.ExecutionService.lambda$executeAsync$7(ExecutionService.java:426) ~[x-pack-watcher-6.2.2.jar:6.2.2]
	at org.elasticsearch.xpack.watcher.execution.ExecutionService$WatchExecutionTask.run(ExecutionService.java:580) [x-pack-watcher-6.2.2.jar:6.2.2]
	at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:573) [elasticsearch-6.2.2.jar:6.2.2]
  • Quelqu'un peut me dire ce que c'est?
  • est ce que mon cluster est bon?
  • que dois je faire pour ne voir qu'un cluster dans kibana?

merci d'avance pour ces éclaircissements

Comment se fait il que j'aie 2 clusters de même nom? ca me dépasse...

Je conseillerai d'ouvrir un dossier https://support.elastic.co

Ceci est pas correcte et dangereux (split brain) pour un cluster avec 3 noeuds master-data, la valeur doit obligatoirement etre 2

Je suis pas trop sur d'ou vient la capture d'ecran listant les clusters, ca vient de monitoring?

A l'heure actuelle il y a surement des donnees de 2 cluster dans .monitoring-es* avec le meme nom car un des noeuds n'a pas vu qu'il y avait deja un cluster donc il a creer un cluster avec le meme nom mais un ID different...

Je suis pas certain de comprendre s'il y a deja des donnees ou pas...
S'il n'y a pas encore de donnees a perdre, je mettrai le bon parametre pour minimum_master_nodes, j'arreterai les 3 noeuds, je suprimerai le contenu du repertoire data pour repartir a zero et je redemarerai (ce qui va creer le cluster une fois que 2 noeuds arrivent a se voir)

Quoi qu'il en soit le mieux serait d'ouvrir un ticket au support car reparrer un split brain n'est pas chose facile.

Effectivement, j'ai repassé à minimum_master_nodes =2

sinon, je trouvais 2 clusters dans kibana /app/monitoring#/home

Maintenant, je n'ai qu'un seul cluster, et cette page switch tout de suite vers le seul cluster qui reste.
Peut etre qu'elastic a créé temporairement un 2eme cluster puis détruit l'ancien...

apparement, tout est rentré dans l'ordre, mais j'ai quand même eu très chaud en jouant avec les IP-FILTERING (Ip-filtering - #4 by dao)

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