web-dev-qa-db-ja.com

開くことに失敗しましたTCP localhost:9200への接続(接続拒否-「localhost」ポート9200のconnect(2))(Faraday :: ConnectionFailed)

エラーが発生しています:Pumaがこのエラーをキャッチしました:開くことに失敗しましたTCP localhost:9200への接続(接続拒否-"localhost"ポート9200のconnect(2))(Faraday :: ConnectionFailed) in my Rails ubuntu 14.04のアプリケーション。

以下は、ターミナルでの私の弾性検索の出力です:

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:~$ 

ここに/etc/elasticsearch/elasticsearch.ymlファイルの私の弾性検索設定があります

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

エラーの説明:

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'
5
John

投稿した設定で、HTTPおよびTCPポートには同じポート番号が割り当てられています

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

transport.tcp.portを変更して再試行することをお勧めします。

既にポート9300が使用されていない限り、デフォルトを使用してみてください。

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

それでも問題が解決しない場合は、ファイアウォールプログラムのポートを開く必要があります。 Ubuntuでは、これはおそらくUFWです。

サービススクリプトにステータス関数がある場合、Elasticsearchインスタンスが正常に起動したかどうかがわかります。これに失敗した場合、ps auxを使用して、実行中かどうかを判断できます。

$ Sudo service elasticsearch status

または

$ ps aux | grep elasticsearch

同様の質問で指摘されているように、cURLはElasticsearchが実行されていないときに接続拒否エラーを発生させることがあります(ソース: Faraday :: ConnectionFailed、Connection refused-connect(2)for "localhost" port 9200 Error Ruby on Rails )。

2
Donglecow

Dockerをお持ちですか?私にとって唯一の解決策は、Dockerを完全にアンインストールすることでした。それ以外の場合、問題はdockerが使用するポートに関するものだと思います。

私のようにalotを使用しない場合は、削除するだけで大​​丈夫です。

0
Lucas Riboli