我在100.100.0.158 VM上配置了Logstash + ES + kibana,Kibana在apache服务器下运行。 8080港口
现在我需要的是什么。 。我只需要给客户端提供URL“100.100.0.158:8080/kibana”,以便客户端可以在网上查看他的数据。
当我将此URL放在客户端浏览器上时,我收到此错误 “无法联系elasticsearch:http://”127.0.0.1“:9200请确保您的系统可以进行弹性搜索”
我是否需要配置ES为IP 100.100.0.158:9200或127.0.0.1:9200即可。 。 !
帮助。 。 !
由于 图莎尔
答案 0 :(得分:4)
如果您的Kibana和ES安装在同一个盒子上,您可以在Kibana的config.js文件中使用此行自动检测ES URL / IP:
/** @scratch /configuration/config.js/5
* ==== elasticsearch
*
* The URL to your elasticsearch server. You almost certainly don't
* want +http://localhost:9200+ here. Even if Kibana and Elasticsearch are on
* the same host. By default this will attempt to reach ES at the same host you have
* elasticsearch installed on. You probably want to set it to the FQDN of your
* elasticsearch host
*/
elasticsearch: "http://"+window.location.hostname+":9200",
这是因为Kibana和ES之间的接口是通过JavaScript实现的,所以使用127.0.0.1
或localhost
实际指向客户机(运行浏览器)而不是服务器。 / p>
答案 1 :(得分:2)
修改elasticsearch配置文件elasticsearch.yml
附加或修改以下配置:
# Enable or disable cross-origin resource sharing.
http.cors.enabled: true
# Which origins to allow.
http.cors.allow-origin: /https?:\/\/<*your\.kibana\.host*>(:[0-9]+)?/
这是由kibana页面试图加载来自elasticsearch的jason数据导致的,出于安全原因将被阻止。
答案 2 :(得分:0)
关于iptables规则。 Kibana使用9292作为Web端口,但对于elasticsearch查询使用9200.所以你必须为这些端口的iptables添加行。
netstat -napt | grep -i LISTEN
你会看到这些端口:9200 9300 9301 9302 9292
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 9200 -j ACCEPT
详见:http://logstash.net/docs/1.3.3/tutorials/getting-started-simple