无法将StormCrawler连接到安全的Elasticsearch

时间:2018-02-28 16:55:01

标签: elasticsearch web-crawler apache-storm stormcrawler

我收到以下错误

  

noNodeAvailableException [没有配置的节点可用:[{#transport#-1} {buKSP622TFWnQm_2-PxqQg} {xxxxxxxx} {10.240.49.79:2309}]] org.elasticsearch.client.transport。

尝试连接到安全的elasticsearch集群时。

该设置适用于非xpack启用的elasticsearch。如何将Storm crawler连接到安全的elasticsearch?

1 个答案:

答案 0 :(得分:0)

不确定这是否会起作用,具体取决于版本等......但首先,您需要按照java client with shield中的说明将盾牌jar添加到类路径中。这可以通过Maven轻松完成

 <repositories>
  <!-- add the elasticsearch repo -->
  <repository>
     <id>elasticsearch-releases</id>
     <url>https://maven.elasticsearch.org/releases</url>
     <releases>
        <enabled>true</enabled>
     </releases>
     <snapshots>
        <enabled>false</enabled>
     </snapshots>
  </repository>

[...]

      <dependency>
     <groupId>org.elasticsearch.plugin</groupId>
     <artifactId>shield</artifactId>
     <version>2.2.0</version>
  </dependency>

其他所有内容都可以通过配置完成,用于状态索引

es.status.plugins:org.elasticsearch.shield.ShieldPlugin   es.status.settings:     cluster.name:&#34; ENTER_CLUSTER_NAME&#34;     shield.user&#34;:&#34; transport_client_user:changeme&#34;

TransportExample.java可能是一个很好的例子,并列出了所需的所有设置。

请注意,Elastic Cloud目前不支持版本6.1.x及更高版本的TransportClient,这是StormCrawler的主分支所在。您可以降级到SC的旧版ES模块,并参考相应的文档。

另一种选择是移植代码以使用高级休息客户端,请参阅migration guide,但这是一项非常重要的任务。

更新:请查看分支ESRestAPi。我已经更改了代码,因此它使用了ES REST客户端。这适用于Elastic Cloud 6.2,您需要做的就是指定

  es.status.user: "USERNAME"
  es.status.password: "PASSWORD"

到每个索引的配置。现在,地址使用带有协议,主机名和端口的普通URL。

如果你让它发挥作用,请告诉我。