[英]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。
可能阻止您訪問遠程系統的事情(您可能知道這些):
9200
上的傳入請求 9200
傳出請求 最佳的揣測? 檢查您是否可以從遠程主機連接到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.