web-dev-qa-db-ja.com

サーバーの外部からElasticSearchインスタンスに到達できない-AzureWindows 2012

Elastic Search2.3.0をAzureのサービスとしてセットアップしましたVM Windows Server 2012R2を使用します。サーバー内からElasticSearchインスタンスにアクセスするには

http://localhost:9200

しかし、サーバーの外部からはアクセスできません。

私は何を試しましたか?

  • テストのために、仮想ネットワークの外部でVMを利用できるようにしました。
  • インバウンドトラフィックルールとしてWindowsファイアウォール設定でポート9200を開きました
  • ポート9200を開くAzureポータル設定にエンドポイントを追加しました

VMクラシックでもこれを試しました。

また、VMが問題ないかどうかをテストするために、そのマシンにIISを設定し、ポート80を開きました。デフォルトのIISページは外部からアクセスできます。

私が試したことのないことは、LinuxVMでESを設定することだけです。

Elasticsearchログに何も見つかりません。ブラウザ(Chrome)では、ネットワークにログはありません。回転してサーバーを待機し、「ERR_EMPTY_RESPONSE」でスナップします。

これをした人は誰か光を当てることができますか?

更新:netstatで確認できるものは次のとおりです。

TCP    127.0.0.1:9200         machine-name:0       LISTENING
TCP    127.0.0.1:9300         machine-name:0       LISTENING
8
droidbot

ES 2.0以降、elasticsearchプロセスのみ localhostにバインド 。これは、ESを内部からクエリできるが、外部からはクエリできない理由を説明しています。

elasticsearch.yml構成ファイルで次の設定を変更する必要があります。

network.Host: 0.0.0.0
23
Val

私も同じケースでした。ログを見る

tail -f /var/log/elasticsearch/NODE.log

これを見た:

 [NODE_NAME] publish_address {10.XXX.XXX.XXX:9300}, bound_addresses {10.XXX.XXX.XXX:9300}
 [NODE_NAME] bound or publishing to a non-loopback address, enforcing bootstrap checks
 [NODE_NAME] node validation exception
 [1] bootstrap checks failed
 [1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
 [NODE_NAME] stopping ...
 [NODE_NAME] stopped

解決策:

アーカイブを変更する/ etc/elasticsearch/elasticsearch.ymlこれで不和の種を並べる:

discovery.seed_hosts: ["127.0.0.1", "[::1]"]

完了。

7
Grecko009

Network.Hostを特別な値に設定することをお勧めします

例えば。

network.Host: [_local_, _site_]

これは私のために働きます。

1
Amey Khadatkar

私にとって成功は設定後にのみ達成されたことに注意してください

http.Host: 0.0.0.0

の代わりに

http.Host: "localhost"
1
E.Big

Elasticsearch 7.1.1を使用してWindowsServer 2012で解決し、C:\ ProgramData\Elastic\Elasticsearch\config\elasticsearch.ymlに次の構成を追加しました。

http.Host: 0.0.0.0
0
D. Pesc.