2014-01-08 23 views
2

我有一個es_client (java/dropwizard)應用程序。它通過純文本連接與彈性搜索進行通信。 我按照https://github.com/sonian/elasticsearch-jetty的說明設置了es client的SSL。 然而,當我開始我的es_client它會報告每5秒以下:SSL Elasticsearch

INFO [2014-01-08 23:02:14,814] org.elasticsearch.client.transport: [Karolina Dean] failed to get node info for [#transport#-1][inet[localhost/127.0.0.1:9443]], disconnecting... ! org.elasticsearch.transport.NodeDisconnectedException: [][inet[localhost/127.0.0.1:9443]][cluster/nodes/info] disconnected

我怎麼能去搞清楚了這一個呢?

感謝, 馬切伊

+0

其實,是否有可能通過使用SSL的Java API與eleasticsearch進行對話? 「jetty插件」似乎只是解決了REST API方面的問題。 – Maciek

回答

2

Elasticsearch默認情況下不支持它的傳輸層SSL,所以這將是東西,你就必須自己添加。這需要在服務器和客戶端都有新的代碼。

幸運的是,Elasticsearch is very modular它的源代碼,因此它可能只需添加一行到配置文件中,而容易掉出傳輸實現。

不幸的是,Elasticsearch使用了大量的私人領域和方法,使人們難以只需添加一個新功能,其現有的實施而無需重新實現這一切或複製/粘貼大量的代碼。此外,Elasticsearch爲他們的Netty遮蔽 - 包含並跳過他們不使用的類,這意味着您必須自己包含來自兼容Netty版本的必需SSL +輔助類。

Found, a hosted Elasticsearch provider它使用Java傳輸客戶端提供完整的SSL支持,它使用this open source plugin,如果您決定自己實現它,您可能會將其用作靈感。

另一種不同的方法是使用stunnel來處理機器之間的特定於SSL的部分,而不是用Elasticsearch本身做任何事情。

+0

elasticsearch-transport-module已棄用。 – slm