服务器上的Kibana部署问题。 。 。客户端无法访问GUI

时间:2013-12-23 06:24:59

标签: elasticsearch logstash kibana

我在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即可。 。 !

帮助。 。 !

由于 图莎尔

3 个答案:

答案 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.1localhost实际指向客户机(运行浏览器)而不是服务器。 / 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