Kibana 3无法连接到elasticsearch

最近准备升级下使用了很久的ELK组合,将kibana从3代升级到4代,将elasticsearch从1.3升级到1.5。升级完了一看,Kibana 4现在问题真的很多啊,功能是强大了,但是易用性也下降了,而且也不兼容Kibana 3的配置数据。没辙,只能把Kibana 4给降级回去。但是一降级,却发现Kibana不好使了,页面一直显示

“Error Could not contact Elasticsearch at http://elasticsearch.host:9200. Please ensure that Elasticsearch is reachable from your system.”

Kibana不明原因地连接不到elasticsearch了。

从浏览器中直接访问elasticsearch主机的9200端口,没有问题,表明elasticsearch实际上是开启了端口的。于是问题就锁定到了Kibana 3和elasticsearch 1.5的兼容问题上了。这个时候尝试打开chrome开发者模式的Console窗口,发现了以下的报错:

XMLHttpRequest cannot load http://elasticsearch.host:9200/_nodes. No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://log.host‘ is therefore not allowed access.

google了下这个错误,果然有不少人也遇到过,似乎这问题是从elasticsearch 1.4.2版本就开始有了,找到的一个github的链接中描述了解决的方法:在elasticsearch的配置文件elastcisearch.yml中加入以下配置即可:

http.cors.allow-origin: "/.*/"
http.cors.enabled: true

该解决方案链接为:https://gist.github.com/rmoff/379e6ce46eb128110f38

还是希望Kibana 4早日成型啊。

评论