2015-01-14 11 views
5

私はElasticsearch 1.3.4を実行しているよ、たて自作経由でのMac OS X 10.10にインストール:Elasticsearch:カールを経由して接続することはできません、奇妙な矛盾した行動

$ brew install elasticsearch 
$ elasticsearch 

がブラウザでhttp://localhost:9200/_cluster/stateを実行するには成功します。

{ 
    "cluster_name": "elasticsearch_jbrukh", 
    "version": 2, 
    "master_node": "q6Jzcza_RwaVvc_1u95O1Q", 
    "blocks": {}, 
    "nodes": { 
    "q6Jzcza_RwaVvc_1u95O1Q": { 
     "name": "Ethan Edwards", 
     "transport_address": "inet[/127.0.0.1:9300]", 
     "attributes": {} 
    } 
    }, 
    "metadata": { 
    "templates": {}, 
    "indices": {} 
    }, 
    "routing_table": { 
    "indices": {} 
    }, 
    "routing_nodes": { 
    "unassigned": [], 
    "nodes": { 
     "q6Jzcza_RwaVvc_1u95O1Q": [] 
    } 
    }, 
    "allocations": [] 
} 

ただし、以下カールコマンドは失敗:

$ curl -XGET "http://localhost:9200/_cluster/state" 
curl: (7) Failed to connect to localhost port 9200: Connection refused 

をさらにcurlコマンドは断続的に成功しますが、そのURLがブラウザからヒットした後にのみ、一度動作してから上記のエラーで再度失敗します。

どうすれば修正できますか?

+1

。私はこれがAWSのm3.mediumインスタンスに関する私の問題のケースであることを発見しました。すべての問題ではありませんが、貴重な時間を節約できます。 –

答えて

22

私は同様の質問hereで前に答えた。私のMac OS Xでは、私は同じ問題があったのでhttp://localhost:9200/の代わりに127.0.0.1:9200/を使用します。

私はあなたがコマンドを使うとき、端末がIPv6アドレスでlocalhostを置き換えてくれていると思います。

私に確認してお知らせください。

+0

はい、私はこれが事実であることを確認することができます。ありがとう。 – Jake

7

私は同じ問題を抱えていました(OS X 10.10 & ES 1.3.4)。

クイックソリューションではIPv4を使用するようにカール強制することです--ipv4

curl --ipv4 -XGET "http://localhost:9200/_cluster/state" 

恒久的な解決策は/etc/hostsを編集し、この行をコメントアウトすることである(少なくとも私にとっては、働いていた)

#fe80::1%lo0 localhost 
0

同様の問題が発生していますが、その逆のようです。

Elasticsearchはipv6ではリッスンしているようですが、ipv4ではリッスンしていないようです。私のクライアントが(私の場合、ノードjsドライバ[1])クライアントに話すようにするために、私はipv6 localhostの表記法がヒットする唯一の方法であることを発見しました:http://[::1]:9200。私は、存在しない問題が何であるかを診断しようとする前に、最初に起動するサービスに約1分を与えるかのように、このエラーメッセージに探して多くの時間を費やす前に

[1] https://github.com/elastic/elasticsearch-js/

関連する問題