Permettant l'accès à distance à Elasticsearch
J'ai une installation par défaut d'Elasticsearch qui je suis en train de requête à partir d'un serveur tiers. Cependant, il semble que par défaut, c'est bloqué.
Est ce que quelqu'un veuillez capable de me dire comment je peux configurer Elasticsearch pour que je puisse l'interroger à partir d'un autre serveur?
OriginalL'auteur Jimmy | 2013-08-28
Vous devez vous connecter pour publier un commentaire.
Quand elasticsearch est installé et fonctionne sans aucun changement de configuration par défaut, il se lie à localhost. Pour accéder à la elasticsearch API REST d'extrémité à distance ci-dessous les modifications sur le serveur où elasticsearch a été installé.
Elasticsearch Changement De Configuration
Mise à jour du réseau.accueil à la propriété dans elasticsearch.yml selon les lignes directrices fournies dans la documentation elasticsearch
Par exemple, pour lier à toutes les adresses IPv4 sur la machine locale, modifier comme ci-dessous
réseau.hôte : 0.0.0.0
Règles De Pare-Feu Mise À Jour
Mise à jour de Linux pare-feu pour autoriser l'accès au port 9200. Veuillez consulter votre documentation Linux pour l'ajout de règles pour le pare-feu.
Par exemple pour permettre l'accès à tous les serveurs(public) dans CentosOS utiliser un firewall-cmd
Remarque : Dans un environnement de production l'accès du public est découragé. Une restriction de l'accès doit être préféré.
OriginalL'auteur Harish Kumar
Dans config/elasticsearch.yml, mettre en réseau.hôte: 0.0.0.0.
Et aussi ajouter de la Règle de trafic Entrant dans le pare-feu pour votre ElasticSearch port(9200 par défaut).
Il a travaillé dans ElasticSearch version 2.3.0
OriginalL'auteur Jay Shah
Modifier: Comme Sisso mentionne dans son commentaire ci-dessous, Elasticsearch comme de 2,0 à moins se lie à localhost par défaut. Voir https://www.elastic.co/guide/en/elasticsearch/reference/2.0/modules-network.html pour plus d'informations.
Comme Damien mentionne dans sa réponse, par défaut ES permet à tous l'accès au port
9200
. En fait, vous avez besoin d'utiliser des outils externes pour fournir des services d'authentification pour l'ES de ressources - quelque chose comme une webapp frontend ou de simples nginx avec Basic Auth allumé.Choses qui peuvent vous empêcher d'accéder à un système distant (vous le savez probablement ces):
9200
9200
Meilleure supposition? Vérifiez que vous pouvez vous connecter à partir de l'hôte distant à l'ES de l'hôte, puis vérifier le pare-feu sur les deux systèmes. Si vous ne pouvez pas diagnostiquer plus, peut-être quelqu'un sur le ES liste de diffusion (https://groups.google.com/forum/#!forum/elasticsearch) ou le canal IRC (#elasticsearch sur Freenode) peut vous aider.
OriginalL'auteur James Addison
Il n'y a pas de restriction par défaut, ElasticSearch exposer un standard de l'API HTTP sur le port
9200
.À partir de votre serveur tiers, êtes-vous capable de:
curl http://es_hostname:9200/
?Il y a une restriction pour IPv4. L'API standard réponses fines pour les tests locaux. Pas de tests à distance.
ES > 2.0 il y a une nouvelle restriction, configurer le réseau.hôte (vous avez des clétage comme "" et "site").
OriginalL'auteur Damien
Pour permettre l'accès à distance avec un nœud par défaut,
settings\elasticsearch.yml
devrait avoir:Mon cas, j'ai besoin de trois instances. Pour chaque instance, il est nécessaire de le déclarer aussi la plage de port utilisé.
OriginalL'auteur Cigano Morrison Mendez