2014-03-01 9 views
5

ich Elasticsearch und alles funktioniert gut für die ersten paar Tage vor kurzem installiert habe, aber irgendwie heute gestopptKann nicht Elasticsearch Verbinden (durch Locke)

zu arbeiten, wenn ich den Dienst starten, behauptet, es zu sein, fein ...

sudo /etc/init.d/elasticsearch start 
* Starting Elasticsearch Server 
...done. 

Aber dann bekomme ich
curl -GET http://127.0.0.1:9200
curl: (7) couldn't connect to host

Mit Blick auf die Elasticsearch Protokolle:

[WARN ][bootstrap    ] jvm uses the client vm, make sure to run `java` with the server vm for best performance by adding `-server` to the command line 

Sieht aus wie es gibt eine Warnung bezüglich der Java VM; könnte das das problem sein? Was sollte ich sonst noch versuchen?

+0

Update Ihr '$ java -version' und Elasticsearch Konfigurationsänderungen, wenn Sie gemacht. Ihr ES-Protokoll sagt, es ist nur ein "warnen". – prayagupd

+0

Gibt es irgendwo, wo ich ein Protokoll von dem sehen könnte, was unter der Haube passiert? Könnte es sein, dass ES auf einem anderen IP/Port hört? –

+0

könnte sein. Sie können überprüfen, welcher Port mit dem Befehl "lsof" überwacht wird. – prayagupd

Antwort

7

1) Überprüfen Sie, was der Status Ihres Port ist 9200, mit lsof Befehl in Linux.

In meinem Fall folgt das Ergebnis, wenn elasticsearch gestartet wird.

[email protected]:~$ sudo lsof -i TCP | grep 9200 
chrome 2639 praayg 84u IPv4 116310  0t0 TCP prayag.local:58989->10.0.4.70:9200 (ESTABLISHED) 
chrome 2639 prayag 99u IPv4 116313  0t0 TCP prayag.local:58990->10.0.4.70:9200 (ESTABLISHED) 
java 7634 prayag 141u IPv6 130960  0t0 TCP *:9200 (LISTEN) 

elasticsearch ist kein Dienst zu mir, da sonst die Port es läuft zu finden;

$ sudo lsof -iTCP -sTCP:LISTEN | grep elasticsearch 

2) überprüfen Sie die Elasticsearch Endpunkt auf I,

geprüft hätte

$ curl -IGET http://localhost:9200 
HTTP/1.1 200 OK 
content-type: application/json; charset=UTF-8 
content-length: 327 
  • -IGET entspricht --head ist, die nur http-Antwort-Header zurückgibt.

  • Antwort 200 bedeutet, dass elasticsearch Endpunkt richtig reagiert.

+0

Hallo, ich bekomme etwas anderes: [root @ root ~] # sudo lsof -iTCP -sTCP: LISTEN | grep elasticsearch java 1375 elasticsearch 100u IPv6 12397 0t0 TCP *: vrace (LISTEN) java 1375 elasticsearch 108u IPv6 12467 0t0 TCP *: wap-wsp (LISTEN) Wissen Sie vielleicht, woher das kommt? – Tomer

+1

@Tomer hatte das nicht gesehen, aber wenn Sie TCP/UDP-Portlisten überprüfen, sehen Sie den Titel ['WAP-WSP' ist Port 9200] (http://www.tcp-udp-ports.com/port-9200.htm)) während ['VRace 'Port 9300 ist] (http://www.tcp-udp-ports.com/port-9300.htm). _ (überprüfen Sie die Hyperlinks) _ – prayagupd

+0

Danke! Sie haben Recht! – Tomer

7

curl -GET http://127.0.0.1:9200 ist der falsche Befehl.

Versuchen Sie curl -XGET http://127.0.0.1:9200. Es sollte die kurze Info über Ihren laufenden lokalen Knoten und Status 200 zurückgeben. Wenn das nicht funktioniert, dann muss etwas anderes falsch sein.

+0

Ich versuchte curl-XGET http://127.0.0.1:9200 und ich bin immer noch curl: (7) konnte keine Verbindung zum Host herstellen. –

+2

läuft Ihr elasticsearch Server? I.e meldet "sudo /etc/init.d/elasticsearch status", dass er ausgeführt wird? – Ashalynd

+0

tatsächlich wurde der Server nicht ausgeführt. Ich benutze Upstart (auf Ubuntu), um den Server automatisch zu starten und er wurde nicht gestartet. Danke für den Tipp zur Überprüfung. In meinem Fall (Upstart) war der Befehl 'sudo initctl elasticsearch status' –

Verwandte Themen