[英]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.