ElasticSearch集群开启X-Pack修改PreBuiltXPackTransportClient

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28018283/article/details/81184223

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

在节点1上安装x-pack

bin/elasticsearch-plugin install x-pack
这里写图片描述

这里写图片描述

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

这里写图片描述

启动 kibana 发现 Auth failed
这里写图片描述

启动集群中的其他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 插件

这里写图片描述
Optimizing and caching browser bundles… 这一步会卡很久。 慢慢等吧 。

安装好了,打开 Kibana 发现 session 报错 clear 也没有用
这里写图片描述
回去看 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 

再次访问,成功!

8

Monitor里面可以看到和 Header 插件类似的功能:
9

集群开启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 的显示,

10

11

13
至此,集群就成功开启了 xpack 功能。

创建用于连接9200的用户

这个用户可以访问 localhost:9200 同时用于下面的 xpack javaApi 连接用户
12

JavaAPi-xpack

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

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

<mirrors>
    <mirror>
        <id>central</id>
        <mirrorOf>central</mirrorOf><!-- 修改此处 -->
        <name>Human Readable Name for this Mirror</name>
        <url>http://maven.aliyun.com/nexus/</url>
    </mirror>
</mirrors>
<profiles>
    <profile>
        <id>dev</id>
        <repositories>
            <repository>  <!-- 增加elastic仓库 -->
                <id>elasticsearch-releases</id>
                <url>https://artifacts.elastic.co/maven</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
        </repositories>
        <pluginRepositories>
        </pluginRepositories>
    </profile>
</profiles>
<activeProfiles>
    <activeProfile>dev</activeProfile> <!-- 激活 -->
</activeProfiles>

然后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 时可能会有一些不一致,有一些差异。

猜你喜欢

转载自blog.csdn.net/qq_28018283/article/details/81184223