Als ich versuchte, eine Verbindung zu Elasticsearch herzustellen,
curl http://localhost:9200
funktioniert dies einwandfrei.
Aber wenn ich das curl http://IpAddress:9200
starte, wird ein Fehler ausgegeben
Verbindung zum localhost-Port 9200 fehlgeschlagen: Verbindung abgelehnt
Wie kann dieser Fehler behoben werden?
elasticsearch
chinna2580
quelle
quelle
curl -X GET "http://localhost:9200"
Antworten:
Standardmäßig sollte es an alle lokalen Adressen gebunden sein. Unter der Annahme, dass Sie kein Problem mit der Netzwerkschicht mit Firewalls haben, kann ich nur prüfen
network.bind_host
, ob die ES-Einstellung entweder nicht oder auf0.0.0.0
oder::0
oder auf die richtige IP-Adresse für Ihr Netzwerk eingestellt ist.Update: Gemäß Kommentaren in ES 2.3 sollten Sie
network.host
stattdessen festlegen .quelle
network.bind_host
Wert explizit festlegen , es war mein Problem, ihn nicht festzulegen.Bearbeiten
/etc/elasticsearch/elasticsearch.yml
Sie die folgende Zeile und fügen Sie sie hinzu:Dadurch wird dieser Parameter "deaktiviert" und Verbindungen von anderen IPs werden zugelassen.
quelle
/Applications/elasticsearch-2.1.1/config/elasticsearch.yml
unter und der Parameter, den ich bearbeiten musste, warnetwork.host
nichtnetwork.bind_host
.curl http://172.17.0.2:9200
. Sie werden erkennen, dass dies die häufig verwendete Docker-IP-Adresse ist.Versuchte alles auf dieser Seite und nur Anweisungen von hier halfen.
in
/etc/default/elasticsearch
, stellen Sie sicher , dass diese unkommentiert sind:Stelle sicher
/var/lib/elasticsearch
es dem Benutzer von elasticsearch gehört:quelle
chown -R elasticsearch:elasticsearch /var/lib/elasticsearch/
undSTART_DAEMON=true
sudo systemctl restart elasticsearch
wie von @kalanit beantwortet, das ProblemIn meinem Fall wurde elasticsearch gestartet. Hatte aber immer noch
Der folgende Befehl war nicht erfolgreich
Damit es funktioniert, musste ich stattdessen rennen
Dann ging alles gut.
quelle
sudo systemctl enable elasticsearch
.systemctl
Arbeiten und Service nicht funktionieren?Warum beginnen Sie nicht mit dieser Befehlszeile:
Ich habe es getan und bekommen:
Dann habe ich die
/etc/elasticsearch/jvm.options
Datei bearbeitet :Das hat wie ein Zauber gewirkt.
quelle
Keine der hier vorgeschlagenen Lösungen funktionierte für mich, aber was letztendlich dazu führte, dass Folgendes hinzugefügt wurde
elasticsearch.yml
Danach habe ich den Dienst neu gestartet und kann
curl
ihn nun sowohl innerhalb der VM als auch extern ausführen. Aus irgendeinem Grund musste ich einige verschiedene Varianten einescurl
Aufrufs in der VM ausprobieren, bevor er funktionierte:Hinweis: Ich verwende Elasticsearch 5.5 unter Ubuntu 14.04
quelle
Stellen Sie sicher, dass der Server gestartet ist. Ich habe dieses Problem gesehen, als meine virtuelle Maschine zu wenig RAM hatte und nicht gestartet werden konnte.
Das Obige zeigt Ihnen, ob es tatsächlich läuft.
quelle
Für dieses Problem musste ich verwenden:
sudo /usr/share/elasticsearch/bin/elasticsearch start
um etwas über die Ports 9200/9300 (sudo netstat -ntlp) zu bekommen und eine Antwort auf:
curl -XGET http://localhost:9200
quelle
Bearbeiten
elasticsearch.yml
Sie die folgende Zeile und fügen Sie sie hinzunetwork.host: 0.0.0.0
hat nicht funktioniert fürquelle
Öffnen Sie Ihre Dockerfile unter Elasticsearch Ordner und aktualisieren "network.host = 0.0.0.0" mit "network.host = 127.0.0.1" . Starten Sie dann den Container neu. Überprüfen Sie Ihre Verbindung mit Curl.
quelle
Ich hatte das gleiche Problem, Verbindungen am 9200-Port abzulehnen. Überprüfen Sie den Status des Elasticsearch-Dienstes mit dem Befehl
sudo service elasticsearch status
. Wenn ein Fehler auftritt und Sie alles lesen, was mit Java zu tun hat, liegt das Problem wahrscheinlich in Ihrem JVM-Speicher. Sie können es in bearbeiten/etc/elasticsearch/jvm.options
. Für einen 1-GB-RAM-Speicher in einer Amazon-Umgebung habe ich meine Konfiguration beibehalten:Nachdem Sie dies eingestellt und den Elasticsearch-Dienst neu gestartet hatten, funktionierte es wie ein Zauber. Die Überprüfung von Nmap und UFW (wenn Sie eine lokale Firewall verwenden) sollte ebenfalls hilfreich sein.
quelle
Ich habe ein ähnliches Problem festgestellt.
So habe ich es gelöst
Führen Sie den folgenden Dienstbefehl aus, um ElasticSearch zu starten
ODER
Wenn Sie immer noch den Fehler erhalten
Führen Sie den folgenden Servicebefehl aus, um den Status von ElasticSearch zu überprüfen
ODER
Wenn Sie eine Antwort ( Aktiv: Aktiv ( Wird ausgeführt) ) wie die folgende erhalten, ist ElasticSearch aktiv und wird ausgeführt
Sie können dann testen, ob Ihr Elasticsearch- Knoten ausgeführt wird, indem Sie eine HTTP-Anforderung an Port 9200 auf localhost mit dem folgenden Befehl senden:
Wenn Sie eine andere Antwort erhalten, müssen Sie möglicherweise ein weiteres Debugging durchführen, um das Problem zu beheben. Wenn Sie jedoch den folgenden Befehl ausführen, können Sie feststellen, welche Einschränkungen den ElasticSearch- Dienst vom Start abhalten .
ODER
Wenn Sie den ElasticSearch- Dienst beenden möchten , führen Sie einfach den folgenden Dienstbefehl aus.
ODER
N / B: Möglicherweise müssen Sie den Befehl
sudo service elasticsearch status
ODERsudo systemctl status elasticsearch
jedes Mal ausführen, wenn der Fehler auftritt , um den Status des ElasticSearch- Dienstes zu ermitteln.Dies gilt auch für Kibana . Führen Sie den Befehl
sudo service kibana status
ODERsudo systemctl status kibana
jedes Mal aus, wenn Sie auf den Fehler stoßen, um den Status des Kibana- Dienstes zu ermitteln.Das ist alles.
Ich hoffe das hilft.
quelle
In diesem Fall müssen Sie zunächst die Java-Version mit dem folgenden Befehl überprüfen:
Nachdem Sie diesen Befehl ausgeführt haben, erhalten Sie ungefähr Folgendes:
Verwenden Sie dann diesen Befehl:
und wählen Sie die folgende Version
Geben Sie ein, um die aktuelle Auswahl [+] beizubehalten, oder geben Sie die Auswahlnummer ein: 2
quelle
Meine 2 Cent,
Ich habe gerade die Installationsprozedur auf Digital Ocean befolgt, anscheinend ist das in den Repos verfügbare Paket nicht auf dem neuesten Stand, ich habe alles gelöscht und die Installationsprozedur direkt von Elastic Search befolgt und alles funktioniert jetzt, im Grunde ist das Out-of-the-Box-Verhalten aktiviert Ein lokaler Host, der auf 9200 zeigt. Dasselbe Problem / Problem mit Kibana, die Lösung für mich war auch, alles zu entfernen und einfach dem Verfahren zu folgen. Ich hoffe, dies spart jemandem zwei Stunden (die Zeit, die ich damit verbracht habe, herauszufinden, wie man ELK einrichtet!).
en
quelle
Aktualisieren Sie Ihr JDK auf die neueste Mindestversion für Ihre Elasticsearch.
quelle
Ändern Sie die Datei network.bind in 0.0.0.0 und http: port in 9200. Die Bindungsadresse 0.0.0.0 bedeutet alle IPv4-Adressen auf dem lokalen Computer. Wenn ein Host zwei IP-Adressen hat, 192.168.1.1 und 10.1.2.1, und ein auf dem Host ausgeführter Server auf 0.0.0.0 lauscht, ist er an beiden IPs erreichbar.
quelle
Wenn der Fehler " Verbindung verweigert" auftritt, führen Sie einfach den folgenden Befehl aus, um den Status des ElasticSearch-Dienstes zu überprüfen
Auf diese Weise können Sie den Status des ElasticSearch-Dienstes entschlüsseln und feststellen, was Sie dagegen tun müssen.
quelle
Nicht nützlich für 7.5.0 und höher.
quelle
Vergessen Sie nach der Verwendung einiger der oben genannten Antworten nicht, dass nach einer geeigneten Installation möglicherweise ein vollständiger Neustart angebracht ist.
quelle
Um dies hinzuzufügen, bin ich über Google auf viele Dokumente gestoßen, die besagten, dass network.host auf localhost gesetzt wurde.
Dadurch wurde mir die berüchtigte Verbindung verweigert. Sie müssen eine IP-Adresse (127.0.0.1) verwenden, keinen vollqualifizierten Domänennamen.
Jeff
quelle
Stellen Sie sicher, dass der Port
9200
für meinen Fall offen ist. Es war eine Amazon-Instanz. Als ich ihn in meiner Sicherheitsgruppe öffnete, funktionierte der Befehl curl.quelle
Das Deaktivieren von SELinux hat bei mir funktioniert, obwohl ich es nicht vorschlage - ich habe das nur für einen PoC gemacht
quelle
Mein Problem war, dass ich nicht damit arbeiten konnte.
localhost
Ich musste es auf die IP-Adresse von localhost einstellennetwork.bind_host: 127.0.0.1
quelle
In meinem Fall liegt das Problem bei der Java-Version, die ich
open-jdk 11
zuvor installiert habe . Dadurch wird das Problem beim Starten des Dienstes verursacht. Ich habe es geändertopen-jdk 8
und es fing an zu funktionierenquelle