web-dev-qa-db-fra.com

Comment activer l'accès/demande à distance dans Elasticsearch 2.0?

À partir de la v2.0, Elasticsearch n'écoute que par défaut sur localhost, mais j'aimerais faire une requête en dehors de localhost.

Par exemple, une requête comme celle-ci est autorisée:

http://localhost:9200/

Mais ce n'est pas:

http://server_name:9200/ (de l'extérieur du serveur, par exemple: un ordinateur local dans le même réseau local).

Merci de votre aide.

63
Abraham Duran

Dans config/elasticsearch.yml put

network.Host: 0.0.0.0
124
arsent

Par défaut, le transport http et le transport interne elasticsearch écoutent uniquement localhost . Si vous souhaitez accéder à Elasticsearch à partir de l'hôte autre que localhost, essayez d'ajouter les configurations suivantes dans config/elasticsearch.yml .

transport.Host: localhost 
transport.tcp.port: 9300 
http.port: 9200
network.Host: 0.0.0.0

Ici, network.Host as 0.0.0.0 autorise l'accès depuis n'importe quel hôte du réseau.

20
Ajit K'sagar

Renommez le fichier elasticsearch.yml en elasticsearch.json dans le dossier config et ajoutez:

{
    "network" : {
        "Host" : "10.0.0.4"
    }
}

Une autre option consiste à fournir les paramètres en externe à l'aide de ES_Java_OPTS ou en tant que paramètres de la commande elasticsearch, par exemple:

$ elasticsearch -Des.network.Host=10.0.0.4

Une autre option consiste à définir es.default. préfixe au lieu de es. préfixe, ce qui signifie que le paramètre par défaut ne sera utilisé que s'il n'est pas explicitement défini dans le fichier de configuration.

Une autre option consiste à utiliser la notation ${...} dans le fichier de configuration, qui se traduira par un paramètre d’environnement, par exemple:

{
    "network" : {
        "Host" : "${ES_NET_Host}"
    }
}

L'emplacement du fichier de configuration peut être défini en externe à l'aide d'une propriété système:

$ elasticsearch -Des.config=/path/to/config/file

Pour plus d'informations, consultez https://www.elastic.co/guide/fr/elasticsearch/reference/1.4/setup-configuration.html

17
Deepika Chalpe

Comme mentionné par @arsent, ajoutez cette adresse ip au fichier de configuration:

Sudo nano /etc/elasticsearch/elasticsearch.yml

Jay a également ajouté un point important: si vous utilisez un pare-feu, n'oubliez pas d'ajouter une règle autorisant le trafic sur ce port. 

Si vous souhaitez autoriser un serveur maître à accéder à ES via http, ajoutez une règle autorisant l'accès uniquement à partir de cette adresse particulière. Par exemple, disons que vous utilisez ufw, puis exécutez cette commande pour ajouter votre port:

Sudo ufw allow from xxx.xxx.xxx.xxx to any port zzzz

Remplacez xxx.xxx.xxx.xxx par votre adresse IP de serveur maître et zzzz par le port que vous avez configuré dans config/elasticsearch.yml

Il est recommandé d’utiliser un port personnalisé et de ne pas conserver le 9200 par défaut.

Pour le tester, SSH sur votre serveur maître et envoyez une requête ping à l'adresse IP de l'ES avec le port correct pour voir si vous obtenez une réponse:

curl -X GET 'http://xxx.xxx.xxx.xxx:zzzz'

Vous pouvez également vérifier que ES est inaccessible depuis d’autres adresses IP en l’essayant avec votre navigateur.

Il y a un excellent article qui montre comment configurer ES sur Ubuntu sur DigitalOcean

5
Ben

Dans /etc/elasticsearch/elasticsearch.yml, définissez la valeur suivante: 

network.Host: [ localhost, _site_ ]

Cette option vous permet d'accéder à partir de l'hôte local et de tous les ordinateurs du réseau local (192.168.X.X), mais pas de l'extérieur.
En savoir plus sur cela et sur d’autres options, lire la documentation

1
Mentor

Remplacez localhost par .0.0. à deux endroits.

  1. Allez à /etc/elasticsearch/elasticsearch.yml. Recherchez la valeur dans network.Host et remplacez-la par .0.0.

  2. C'est l'étape si vous utilisez Kibana. Allez à /etc/kibana/kibana.yml. Recherchez la valeur dans server.Host et remplacez-la par .0.0.

Vous avez maintenant accès à distance avec l'adresse IP et l'hôte.

1
Bikram

Dans config/elasticsearch.yml, entrez network.Host: 0.0.0.0 comme @arsent l'a dit .. Et ajoutez également une règle entrante au pare-feu pour votre port ElasticSearch (9200 ByDefault) .

0
Jay Shah