簡體   English   中英

允許遠程訪問Elasticsearch

[英]Allowing remote access to Elasticsearch

我有一個默認安裝的Elasticsearch,我試圖從第三方服務器查詢。 但是,似乎默認情況下會被阻止。

是否有人能夠告訴我如何配置Elasticsearch以便我可以從其他服務器查詢它?

在config / elasticsearch.yml中,輸入network.host:0.0.0.0。 並在防火牆中為您的ElasticSearch端口添加入站規則(9200 ByDefault)。 它適用於ElasticSearch版本2.3.0

編輯 :正如Sisso在下面的評論中提到的,默認情況下,Elasticsearch從2.0開始至少綁定到localhost。 有關詳細信息,請參閱https://www.elastic.co/guide/en/elasticsearch/reference/2.0/modules-network.html


正如Damien在他的回答中提到的,默認情況下ES允許所有訪問端口9200 實際上,您需要使用外部工具為ES資源提供身份驗證 - 例如webapp前端或僅啟用Basic Auth的簡單nginx。

可能阻止您訪問遠程系統的事情(您可能知道這些):

  • 網絡配置問題
  • ES主機防火牆阻止端口9200上的傳入請求
  • 遠程主機防火牆阻止對ES主機和/或端口9200傳出請求
  • ES配置為綁定到錯誤的IP地址(默認情況下,它綁定到所有可用的IP)

最佳的揣測? 檢查您是否可以從遠程主機連接到ES主機,然后檢查兩個系統上的防火牆。 如果您無法進一步診斷,可能是ES郵件列表( https://groups.google.com/forum/#!forum/elasticsearch )或IRC頻道(Freenode上的#elasticsearch)上的某人可以提供幫助。

如果在沒有任何配置更改的情況下安裝並運行elasticsearch,則它僅綁定到localhost。 要遠程訪問elasticsearch REST API端點,必須在已安裝elasticsearch的服務器上進行以下更改。

  • Elasticsearch配置更改根據elasticsearch文檔中提供的准則更新elasticsearch.yml中的network.host屬性例如,要綁定到本地計算機上的所有IPv4地址,請更改如下network.host:0.0.0.0

  • 防火牆規則更新更新Linux防火牆以允許訪問端口9200.請參閱Linux文檔以將規則添加到防火牆。

例如,要允許訪問CentosOS中的所有服務器(公共),請使用firewall-cmd

sudo firewall-cmd --zone=public --permanent --add-port=9200/tcp
sudo firewall-cmd --reload

注意:在生產環境中,不鼓勵公共訪問。 應優先考慮限制訪問。

默認情況下沒有限制,ElasticSearch在端口9200上公開標准HTTP API。

從您的第三方服務器,您能夠: curl http://es_hostname:9200/

要允許使用一個默認節點進行遠程訪問, settings\\elasticsearch.yml應具有:

network.host: 0.0.0.0
http.port: 9200

我的情況我需要三個實例。 對於每個實例,還必須聲明使用的端口范圍。

network.host: 0.0.0.0
http.port: 9200-9202

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM