2016-12-05 36 views
4

是否可以使用X-Pack通過HTTPS連接到ElasticSearch?隨着交換機使用證書,自己的連接方式不再起作用。我沒有使用證書的問題,但我需要知道從哪裏獲得或將密鑰上傳到雲實例,但我無法在任何地方找到信息。我也沒有得到任何人在論壇或IRC的回答。使用Java客戶端和X-Pack/HTTPS連接到ElasticSearch Cloud 5.x

有沒有人成功地做到這一點?啓動5.x實例時不再有警告,所以我認爲這是可能的,但我無法弄清楚如何去做。我還被告知,我不能再啓動一個2.4.1實例,並且只有2.4.2可用(迄今爲止太不穩定),所以我有點不能啓動一個可用的實例。


更新

有人告訴我,因爲正在使用公共CA沒有證書是必需的。但是,我仍然無法弄清楚如何連接到5.1.1實例。

Settings settings = Settings.builder() 
      .put("transport.ping_schedule", "5s") 
      .put("cluster.name", "<cluster_id>") 
      .put("xpack.security.transport.ssl.enabled", "true") 
      .put("xpack.security.user", "elastic:<password_from_cluster_creation>") 
      .build(); 

    String hostname = "<cluster_id>.us-east-1.aws.found.io"; 
    TransportClient client = new PreBuiltXPackTransportClient(settings) 
     .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(hostname), 9343)); 

我在做什麼錯在這裏?我收到一個錯誤,說節點不可用。

Exception in thread "main" NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{xlhZqKBCQniYrN4OWzByFQ}{<cluster_id>.us-east-1.aws.found.io}{<id_address>:9343}]] 

我也嘗試創建一個具有transport_client角色的用戶,但仍然是相同的錯誤。


更新2

我從這裏嘗試示例代碼,它仍然無法正常工作。

https://github.com/elastic/found-shield-example/blob/master/src/main/java/org/elasticsearch/cloud/transport/example/TransportExample.java

以下是你可以測試一個實例。在我找出問題後,我會盡快將其銷燬。


更新3

我想通了這個問題,並銷燬測試集羣。找到下面的解決方案。

回答

3

經過與ES論壇上的人們的一些討論,我最終得到了它的工作。這裏有一些提示,當您遇到的問題與連接:

1)你可能因爲它不是文檔

.put("request.headers.X-Found-Cluster", clusterName) 

2中提及),如果仍然沒有按」沒有在標題中添加此將不起作用,使用示例代碼從這裏以驗證您的主機名是正確的,你有正確的憑據

https://github.com/elastic/found-shield-example#running

3)如果你想運行在Eclipse中的示例代碼,替換$ {集羣。名稱},然後再運行它或者它不會工作。

希望這能幫助人們節省一些時間,試圖找出連接問題。連接到ES 5.x與2.x一樣簡單。問題是文檔不清晰,沒有鏈接到示例客戶端。

相關問題