Elastic Search2.3.0をAzureのサービスとしてセットアップしましたVM Windows Server 2012R2を使用します。サーバー内からElasticSearchインスタンスにアクセスするには
http://localhost:9200
しかし、サーバーの外部からはアクセスできません。
私は何を試しましたか?
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
ES 2.0以降、elasticsearchプロセスのみ localhostにバインド 。これは、ESを内部からクエリできるが、外部からはクエリできない理由を説明しています。
elasticsearch.yml
構成ファイルで次の設定を変更する必要があります。
network.Host: 0.0.0.0
私も同じケースでした。ログを見る
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]"]
完了。
Network.Hostを特別な値に設定することをお勧めします
例えば。
network.Host: [_local_, _site_]
これは私のために働きます。
私にとって成功は設定後にのみ達成されたことに注意してください
http.Host: 0.0.0.0
の代わりに
http.Host: "localhost"
Elasticsearch 7.1.1を使用してWindowsServer 2012で解決し、C:\ ProgramData\Elastic\Elasticsearch\config\elasticsearch.ymlに次の構成を追加しました。
http.Host: 0.0.0.0