2017-06-27 3 views
0

J'ai l'application Spring Boot avec elasticsearch intégrée. Je peux y accéder sur localhost: 9200 mais il ne répond pas avec le vrai IP xx.xxx.x.xx: 9200.L'elasticsearch embarqué n'est pas accessible depuis l'extérieur

Le port est ouvert, le problème est qu'il n'écoute qu'une interface locale.

netstat -vanp tcp | grep 9200 
tcp4  0  0 127.0.0.1.9200   *.*     LISTEN  131072 131072 31425  0 
tcp6  0  0 ::1.9200    *.*     LISTEN  131072 131072 31425  0 
tcp6  0  0 fe80::1%lo0.9200  *.*     LISTEN  131072 131072 31425  0 

Comment forcer écouter tout, comme je l'ai pour le web 8080

netstat -vanp tcp | grep 8080 
tcp46  0  0 *.8080     *.*     LISTEN  131072 131072 23002  0 

J'utilise:

  • printemps-boot-démarreur-parent 1.4.1.RELEASE
  • spring-boot-starter-data-elasticsearch 1.4.1.RELEASE
  • version de compression élastique 2.4.0

et ici fait partie de ma demande-dev.yml

data: 
    elasticsearch: 
     cluster-name: 
     cluster-nodes: 
     properties: 
      path: 
       logs: target/elasticsearch/log 
       data: target/elasticsearch/data 
      http: 
       enabled: true 

Merci

Répondre

1

Vous devez lier votre ElasticSearch intégré à tous les ips hôtes (ou au moins à l'IP réel du la machine), il me semble que vous lier à localhost, vous devez donc cette entrée lors de la configuration de votre ElasticSearch:

Settings.Builder nodeSettings = nodeBuilder().settings(); 
... 
nodeSettings.put("network.host", "0.0.0.0"); 

cela lie votre ElasticSearch aussi b ind à l'adresse IP de votre hôte.

+0

Merci beaucoup cela fonctionne très bien. J'ai appliqué votre approche à ** application-dev.yml ** 'réseau: hôte: 0.0.0.0' - désolé commentaires ici ne supporte pas la nouvelle ligne –

+0

Oui, bien sûr. Je l'ai fait dans le code parce que vous avez mentionné que vous l'utilisiez. BTW vous êtes probablement au courant mais de 5.x elasticsearch ne supporte plus le mode embarqué: https://www.elastic.co/blog/elasticsearch-the-server –

+0

Merci pour la note. Sera préparé. –