Ab Version 2.0 hört Elasticsearch standardmäßig nur noch localhost ab, aber ich möchte eine Anfrage außerhalb von localhost stellen.
Eine solche Anfrage ist beispielsweise zulässig:
http://localhost:9200/
Das ist aber nicht:
http://server_name:9200/
(von außerhalb des Servers, z. B. ein lokaler Computer im selben LAN).
Danke für Ihre Hilfe.
elasticsearch
Abraham Duran
quelle
quelle
Antworten:
In
config/elasticsearch.yml
putquelle
/etc/elasticsearch/elasticsearch.yml
und Inhalt:network.host: ["0.0.0.0"]
T_T
C:\ProgramData\Elastic\Elasticsearch\config
Speicherort. Wenn Sie programmatisch Elasticsearch verbinden möchten müssen Sie festlegen ,transport.host: 0.0.0.0
inelasticsearch.yml
Datei.Standardmäßig hört der HTTP-Transport und der interne Elasticsearch-Transport nur auf localhost. Wenn Sie von einem anderen Host als localhost auf Elasticsearch zugreifen möchten, fügen Sie die folgenden Konfigurationen in config / elasticsearch.yml hinzu .
Hier ermöglicht network.host als 0.0.0.0 den Zugriff von jedem Host innerhalb des Netzwerks.
quelle
elasticsearch.yml
Datei aufgenommen wurdenBenennen Sie die Datei elasticsearch.yml im Konfigurationsordner in elasticsearch.json um und fügen Sie Folgendes hinzu:
Eine andere Möglichkeit besteht darin, die Einstellungen extern entweder mit ES_JAVA_OPTS oder als Parameter für den Befehl elasticsearch bereitzustellen, zum Beispiel:
$ elasticsearch -Des.network.host=10.0.0.4
Eine weitere Option ist das Festlegen von es.default. Präfix statt es. Präfix, dh die Standardeinstellung wird nur verwendet, wenn sie nicht explizit in der Konfigurationsdatei festgelegt ist.
Eine andere Option ist die Verwendung der
${...}
Notation in der Konfigurationsdatei, die in eine Umgebungseinstellung aufgelöst wird, zum Beispiel:Der Speicherort der Konfigurationsdatei kann mithilfe einer Systemeigenschaft extern festgelegt werden:
$ elasticsearch -Des.config=/path/to/config/file
Weitere Informationen finden Sie unter https://www.elastic.co/guide/en/elasticsearch/reference/1.4/setup-configuration.html
quelle
elasticsearch.yml
,elasticsearch.json
weil der erste, hmmm, YAML und der zweite istJSON
?Wie @arsent erwähnt, fügen Sie diese IP-Adresse zur Konfigurationsdatei hinzu:
Jay hat auch einen wichtigen Punkt hinzugefügt: Wenn Sie eine Firewall verwenden, müssen Sie eine Regel hinzufügen, die den Datenverkehr zu diesem Port zulässt.
Wenn Sie einem Master-Server erlauben möchten, über http auf ES zuzugreifen, fügen Sie eine Regel hinzu, die den Zugriff nur von dieser bestimmten Adresse aus erlaubt. Angenommen, Sie verwenden ufw, und führen Sie diesen Befehl aus, um Ihren Port hinzuzufügen:
Ersetzen Sie xxx.xxx.xxx.xxx durch Ihre Master-Server-IP-Adresse und zzzz durch den Port, in dem Sie konfiguriert haben
config/elasticsearch.yml
Es wird empfohlen, einen benutzerdefinierten Port zu verwenden und den Standard 9200 nicht beizubehalten
Um es zu testen, SSH in Ihren Master-Server und pingen Sie die ES-IP mit dem richtigen Port, um zu sehen, ob Sie eine Antwort erhalten:
Sie können auch überprüfen, ob auf ES von anderen IP-Adressen aus nicht zugegriffen werden kann, indem Sie es mit Ihrem Browser versuchen.
Es gibt einen ausgezeichneten Artikel , der zeigt, wie man ES unter Ubuntu auf DigitalOcean einrichtet
quelle
Legen Sie in /etc/elasticsearch/elasticsearch.yml den folgenden Wert fest:
network.host: [ localhost, _site_ ]
Mit dieser Option können Sie sowohl vom lokalen Host als auch von allen Computern im lokalen Netzwerk (192.168.XX) aus zugreifen, jedoch nicht von außen.
Weitere Informationen zu dieser und anderen Optionen finden Sie in der Dokumentation
quelle
Fügen Sie auf dem Remote-Computer, auf dem elasticsearch installiert ist, einfach die folgenden zwei Konfigurationen hinzu
/etc/elasticsearch/elasticsearch.yml
Getestet auf elasticsearch 6.8.3 und AWS EC2 Linux AMI als Remote-Maschine
quelle
In
/etc/elasticsearch/elasticsearch.yml
:quelle
Ersetzen Sie localhost an zwei Stellen durch 0.0.0.0 .
Gehe zu
/etc/elasticsearch/elasticsearch.yml
. Suchen Sie in network.host nach einem Wert und ändern Sie ihn in 0.0.0.0Dies ist ein Schritt, wenn Sie Kibana verwenden. Gehe zu
/etc/kibana/kibana.yml
. Suchen Sie in server.host nach einem Wert und ändern Sie ihn in 0.0.0.0Jetzt greifen Sie mit IP-Adresse und Host auf den Remotezugriff zu.
quelle
In
config/elasticsearch.yml
legtenetwork.host: 0.0.0.0
als @arsent sagte. Fügen Sie außerdem eine eingehende Regel in der Firewall für Ihren ElasticSearch-Port (9200 ByDefault) hinzu.Es funktionierte in ElasticSearch Version 2.3.0
quelle
Abgesehen von der Einstellung
network.host : 0.0.0.0
Möglicherweise müssen folgende Parameter festgelegt werden
Alle Einstellungen gehen rein
elasticsearch/elasticsearch.yml
quelle
Für ElasticSearch 7.8 und höher
Überprüfen Sie, ob Sie sich auf einem einzelnen Knoten befinden. Fügen Sie die folgende Zeile hinzu
Nehmen Sie die folgenden Änderungen am Knoten vor, um von einem anderen Computer oder einer anderen Anwendung auf den Elasticsearch-Server zuzugreifen
C:\ProgramData\Elastic\Elasticsearch\config\elasticsearch.yml file:
Fügen Sie die folgenden Zeilen hinzu
Einige Zeit müssen Sie möglicherweise CORS aktivieren
Hier ist meine vollständige yml-Datei
quelle