ElasticSearch集群开启X-Pack修改PreBuiltXPackTransportClient

原文链接 : ElasticSearch集群开启X-Pack修改PreBuiltXPackTransportClient
ElasticSearch版本5.5.1,集群三台节点。

在节点1上安装x-pack

bin/elasticsearch-plugin install x-pack
ElasticSearch集群开启X-Pack修改PreBuiltXPackTransportClient_第1张图片

ElasticSearch集群开启X-Pack修改PreBuiltXPackTransportClient_第2张图片

可以看到node1启动时已经加载了 x-pack

这里写图片描述

启动 kibana 发现 Auth failed
ElasticSearch集群开启X-Pack修改PreBuiltXPackTransportClient_第3张图片

启动集群中的其他node节点也报错 ,无法加入集群。

Caused by: org.elasticsearch.transport.RemoteTransportException: [node1][127.0.0.1:9300][internal:transport/handshake]
Caused by: org.elasticsearch.ElasticsearchSecurityException: missing authentication token for action [internal:transport/handshake]

这里写图片描述

安装 kibana-x-pack 插件

ElasticSearch集群开启X-Pack修改PreBuiltXPackTransportClient_第4张图片
Optimizing and caching browser bundles… 这一步会卡很久。 慢慢等吧 。

安装好了,打开 Kibana 发现 session 报错 clear 也没有用
ElasticSearch集群开启X-Pack修改PreBuiltXPackTransportClient_第5张图片
回去看 Kibana 没有被关闭 导致的:

log   [02:10:01.457] [fatal] Port 5601 is already in use. Another instance of Kibana may be running!
解决:
lsof -i:5601
kill pid
bin/kibana 

再次访问,成功!

ElasticSearch集群开启X-Pack修改PreBuiltXPackTransportClient_第6张图片

Monitor里面可以看到和 Header 插件类似的功能:
ElasticSearch集群开启X-Pack修改PreBuiltXPackTransportClient_第7张图片

集群开启Xpack

root@7088c867ec22:/elasticsearch/el_slave/es_slave1# bin/elasticsearch-plugin install x-pack
-> Downloading x-pack from elastic

过程与 node1 相同,重启 node2 看看现在能否添加到集群中去:

##加载x-pack
[2018-07-24T02:26:58,548][INFO ][o.e.p.PluginsService     ] [node2] loaded plugin [x-pack]

##添加到集群成功
[2018-07-24T02:27:07,785][INFO ][o.e.c.s.ClusterService   ] [node2] detected_master {node1}{guQWpGciQvuQzXB30zDMEw}{HE-ZLsMTTE-L-hcsFX45sQ}{172.17.0.2}{172.17.0.2:9300}{ml.enabled=true}, added {{node1}{guQWpGciQvuQzXB30zDMEw}{HE-ZLsMTTE-L-hcsFX45sQ}{172.17.0.2}{172.17.0.2:9300}{ml.enabled=true},}, reason: zen-disco-receive(from master [master {node1}{guQWpGciQvuQzXB30zDMEw}{HE-ZLsMTTE-L-hcsFX45sQ}{172.17.0.2}{172.17.0.2:9300}{ml.enabled=true} committed version [21]])

看看 Kibana 的显示,

ElasticSearch集群开启X-Pack修改PreBuiltXPackTransportClient_第8张图片

ElasticSearch集群开启X-Pack修改PreBuiltXPackTransportClient_第9张图片

ElasticSearch集群开启X-Pack修改PreBuiltXPackTransportClient_第10张图片
至此,集群就成功开启了 xpack 功能。

创建用于连接9200的用户

这个用户可以访问 localhost:9200 同时用于下面的 xpack javaApi 连接用户
ElasticSearch集群开启X-Pack修改PreBuiltXPackTransportClient_第11张图片

JavaAPi-xpack

添加 x-pack 之后 java api 的连接方式的改变

由于 xpack-client-tansport PreBuiltXPackTransportClient 需要单独引入 ,所以可以从本地引入 jar 包,或者 修改 mvn ~/.m2/settings.xml 添加如下代码:


    
        central
        central
        Human Readable Name for this Mirror
        http://maven.aliyun.com/nexus/
    


    
        dev
        
              
                elasticsearch-releases
                https://artifacts.elastic.co/maven
                
                    true
                
                
                    false
                
            
        
        
        
    


    dev 

然后transport 的写法只要在 Elastic-JavaApi SpringBoot布尔查询 的基础上 做一点儿修改就可以了

try {
            //不要设置集群嗅探,这样会把客户端也添加到集群中作为
            Settings settings = Settings.builder()
                    .put("cluster.name", "leon")
                    .put("xpack.security.transport.ssl.enabled", false)
                    .put("xpack.security.user", "es:es123456")
                    .build();

   transPort = new PreBuiltXPackTransportClient(settings);

这一套是我实践下来的记录,在移植到生产环境和别人机器上在引入 PreBuiltXPackTransportClient 时可能会有一些不一致,有一些差异。

你可能感兴趣的:(ElasticSearch)