Kibana无法与VPC中的Elasticsearch集群通信

时间:2014-06-25 22:07:35

标签: amazon-web-services nginx elasticsearch kibana amazon-vpc

我在Amazon VPC中设置了Elasticsearch和Kibana,其中两个Elasticsearch实例(形成一个群集)保留在私有子网中,其他节点中的Kibana / nginx位于公共子网中。我可以检查群集健康状况,这很好 -

{
  "cluster_name" : "es-cluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 2,
  "number_of_data_nodes" : 2,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0
}

当我从kibana节点执行curl -XGET http://es_node1:9200curl -XGET http://es_node2:9200时,它工作正常,其中es_node1和es_node2是elasticsearch集群的两个节点。但是当我在浏览器中打开Kibana仪表板时,我得到了 -

Error Could not contact Elasticsearch at http://xxxx:9200. Please ensure that Elasticsearch is reachable from your system.

在Kibana的config.js文件中,我尝试过设置弹性搜索实例的私有IP或私有DNS名称,但它不起作用。请注意,可以使用命令行中的curl从Kibana节点访问elasticsearch节点。

当我在VPC外面进行相同的设置时,一切正常。我怀疑问题是,除非弹性搜索集群公开(即放在公共子网中),否则Kibana会继续显示该错误。

1 个答案:

答案 0 :(得分:1)

是的,你的怀疑是正确的。

Kibana是一个完全客户端应用程序。这意味着客户端(即最终用户浏览器)需要能够访问elasticsearch集群。