web-dev-qa-db-fra.com

Impossible d'ouvrir TCP à localhost: 9200 (connexion refusée - connexion (2) pour le port "localhost" 9200) (Faraday :: ConnectionFailed)

J'obtiens l'erreur: Puma a détecté cette erreur: Impossible d'ouvrir TCP à localhost: 9200 (connexion refusée - connect (2) pour le port "localhost" 9200)) (Faraday :: ConnectionFailed) dans mon Rails application dans ubuntu 14.04.

ci-dessous est la sortie de ma recherche élastique dans le terminal:

prashanth@prashanth-OptiPlex-390:~$ Sudo service elasticsearch restart
 * Starting Elasticsearch Server                                                                                                               prashanth@prashanth-OptiPlex-390:~$ Sudo service elasticsearch start
 * Starting Elasticsearch Server                                                                                                                * Already running.                                                                                                                     [ OK ] 
prashanth@prashanth-OptiPlex-390:~$ curl -X GET 'http://localhost:9200'
curl: (7) Failed to connect to localhost port 9200: Connection refused
prashanth@prashanth-OptiPlex-390:~$ 

voici les paramètres de ma recherche élastique dans /etc/elasticsearch/elasticsearch.yml fichier

network.Host: 127.0.0.1
transport.tcp.port: 9200
http.port: 9200

erreur de description:

Puma caught this error: Failed to open TCP connection to localhost:9200 (Connection refused - connect(2) for "localhost" port 9200) (Faraday::ConnectionFailed)
/home/prashanth/.rvm/rubies/Ruby-2.3.1/lib/Ruby/2.3.0/net/http.rb:882:in `rescue in block in connect'
/home/prashanth/.rvm/rubies/Ruby-2.3.1/lib/Ruby/2.3.0/net/http.rb:879:in `block in connect'
/home/prashanth/.rvm/rubies/Ruby-2.3.1/lib/Ruby/2.3.0/timeout.rb:91:in `block in timeout'
/home/prashanth/.rvm/rubies/Ruby-2.3.1/lib/Ruby/2.3.0/timeout.rb:101:in `timeout'
/home/prashanth/.rvm/rubies/Ruby-2.3.1/lib/Ruby/2.3.0/net/http.rb:878:in `connect'
/home/prashanth/.rvm/rubies/Ruby-2.3.1/lib/Ruby/2.3.0/net/http.rb:863:in `do_start'
/home/prashanth/.rvm/rubies/Ruby-2.3.1/lib/Ruby/2.3.0/net/http.rb:852:in `start'
/home/prashanth/.rvm/rubies/Ruby-2.3.1/lib/Ruby/2.3.0/net/http.rb:1398:in `request'
/home/prashanth/.rvm/gems/Ruby-2.3.1/gems/faraday-0.10.1/lib/faraday/adapter/net_http.rb:83:in `perform_request'
/home/prashanth/.rvm/gems/Ruby-2.3.1/gems/faraday-0.10.1/lib/faraday/adapter/net_http.rb:41:in `block in call'
/home/prashanth/.rvm/gems/Ruby-2.3.1/gems/faraday-0.10.1/lib/faraday/adapter/net_http.rb:88:in `with_net_http_connection'
/home/prashanth/.rvm/gems/Ruby-2.3.1/gems/faraday-0.10.1/lib/faraday/adapter/net_http.rb:33:in `call'
/home/prashanth/.rvm/gems/Ruby-2.3.1/gems/faraday-0.10.1/lib/faraday/rack_builder.rb:139:in `build_response'
/home/prashanth/.rvm/gems/Ruby-2.3.1/gems/faraday-0.10.1/lib/faraday/connection.rb:377:in `run_request'
/home/prashanth/.rvm/gems/Ruby-2.3.1/gems/elasticsearch-transport-5.0.0/lib/elasticsearch/transport/transport/http/faraday.rb:23:in `block in perform_request'
/home/prashanth/.rvm/gems/Ruby-2.3.1/gems/elasticsearch-transport-5.0.0/lib/elasticsearch/transport/transport/base.rb:257:in `perform_request'
/home/prashanth/.rvm/gems/Ruby-2.3.1/gems/elasticsearch-transport-5.0.0/lib/elasticsearch/transport/transport/http/faraday.rb:20:in `perform_request'
/home/prashanth/.rvm/gems/Ruby-2.3.1/gems/elasticsearch-transport-5.0.0/lib/elasticsearch/transport/client.rb:128:in `perform_request'
6
John

Dans les paramètres que vous avez publiés, vos ports HTTP et TCP ont le même numéro de port attribué

network.Host: 127.0.0.1
transport.tcp.port: 9200
http.port: 9200

Je suggère de changer le transport.tcp.port et réessayer.

Essayez d'utiliser les valeurs par défaut à moins que vous n'ayez déjà utilisé le port 9300:

network.Host: 127.0.0.1
transport.tcp.port: 9300
http.port: 9200

Si vous rencontrez toujours des problèmes, vous devrez peut-être ouvrir les ports de votre programme de pare-feu. Sur Ubuntu, c'est probablement UFW.

Si votre script de service a une fonction d'état, cela peut vous indiquer si votre instance Elasticsearch a démarré correctement ou non. A défaut, vous pouvez utiliser ps aux pour déterminer s'il est en cours d'exécution.

$ Sudo service elasticsearch status

Ou

$ ps aux | grep elasticsearch

Comme indiqué dans des questions similaires, cURL peut donner une erreur de connexion refusée lorsque Elasticsearch n'est pas en cours d'exécution (source: Faraday :: ConnectionFailed, Connexion refusée - connect (2) pour le port "localhost" 9200 Error Ruby sur Rails ).

3
Donglecow

Avez-vous Docker? La seule solution pour moi était de désinstaller complètement Docker. Sinon, je pense que le problème est lié au port utilisé par Docker.

Si vous n'utilisez pas beaucoup comme moi, supprimez-le et vous êtes prêt à partir.

0
Lucas Riboli