2014-06-25 100 views
1

我在Amazon VPC中設置了Elasticsearch和Kibana,其中兩個Elasticsearch實例(形成集羣)保留在私有子網中,而其他節點位於公共子網中的Kibana/nginx。我可以查看集羣的健康,這是很好的 -Kibana無法與VPC中的Elasticsearch集羣通話

{ 
    "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 
} 

當我做curl -XGET http://es_node1:9200curl -XGET http://es_node2:9200從kibana節點,它工作正常,其中es_node1和es_node2是elasticsearch集羣的兩個節點。但是,當我在瀏覽器中打開儀表盤Kibana,我得到 -

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

config.js文件Kibana的,我試圖把專用IP或elasticsearch實例的私有DNS名稱,但它不能正常工作。請注意,可以從Kibana節點使用命令行中的curl訪問elasticsearch節點。

當我在VPC外做同樣的設置時,一切正常。我懷疑問題在於,除非彈性搜索集羣公開(即公開在子網中),否則Kibana會繼續顯示該錯誤。

回答

1

是的,你的懷疑是正確的。

Kibana是一個完全客戶端應用程序。其含義是客戶端(即最終用戶瀏覽器)需要能夠訪問elasticsearch集羣。

+0

這還適用於Kibana 4嗎? –

+1

這不再適用於Kibana4。它有一個服務器端組件,所以只需要打開它的訪問權限。 – ppearcy