2015-12-19 6 views
5

私は9ノードのElasticsearchクラスタを設定するために素敵なansible-elasticsearchプロジェクトを使用しようとしています。弾性検索クラスタ設定でユニキャストとマルチキャストの両方のノードが検出されない

各ノードは起動していますが、互いに通信していません。マスターノードは、データノードがゼロであると考えます。データノードはマスターノードに接続していません。

これらはすべて同じです。cluster.name。私はマルチキャストを有効にして(discovery.zen.ping.multicast.enabled: true)、無効にして(以前の設定をfalseにして、discovery.zen.ping.unicast.hosts:["host1","host2",..."host9"])試みましたが、いずれの場合もノードは通信していません。

彼らはお互いにネットワーク接続を持っている - ポートを介してTelnet経由検証9300

出力例: $ curl host1:9200/_cluster/health {"error":{"root_cause":[{"type":"master_not_discovered_exception","reason":"waited for [30s]"}],"type":"master_not_discovered_exception","reason":"waited for [30s]"},"status":503}

彼らは接続しないだろう、なぜ私はこれ以上の理由を考えることはできません - それ以上を探して何を試してみるかのアイデア。

編集:私はついにこの問題を解決しました。機能した設定はpublish_host"_non_loopback:ipv4_"で、ユニキャストのdiscovery.zen.ping.unicast.hosts["host1:9300","host2:9300","host3:9300"]に設定されていました - 専用のマスターノードのみが記載されています。私は2

答えて

6

の最小マスターノード数を持って、私はそれがその行動を引き起こす可能性があります考えることができる唯一の理由は、次のとおりです。

  1. 接続の問題 - pingは、ノードが接続できることを確認するための良いツールではありませんお互い。 Telnetを使用し、ポート上のホスト2にホスト1から接続してみてください9300

  2. あなたelasticsearch.yml127.0.0.1または間違ったホスト(あなたがわからない場合、それはあなたの接続の問題を解決するかどうかを確認するには、0.0.0.0をバインドをバインドするように設定されており、 elasticsearchがインターネットに直接さらされるのを避けるため、内部ホストのみをバインドするように変更することが重要です)。

  3. あなたのpublish_hostが間違っています - これは通常、ドッカーコンテナ内でESを実行するときに、publish_hostが他のホスト経由でアクセスできるアドレスに設定されていることを確認する必要があります。

+0

私はpingが十分でないことを思い出させてくれてありがとう - テルネットは9300以上も接続することができます。すべてのホストが '0.0.0.0'にバインドされていて、' publish_host'が設定されていません。 – Dave

+0

公開ホストが間違っている可能性があります。正しいホストに設定できますか?これは、クラスタ内の他のマシンからアクセス可能で表示可能なIPアドレスである必要があります。 –

+0

@Dave私はあなたが私の答えを受け入れたことを知っています、それは 'publish_host'でしたか? –