原文链接 : ElasticSearch集群开启X-Pack修改PreBuiltXPackTransportClient
ElasticSearch版本5.5.1,集群三台节点。
bin/elasticsearch-plugin install x-pack
可以看到node1启动时已经加载了 x-pack
启动集群中的其他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
再次访问,成功!
在 Monitor
里面可以看到和 Header
插件类似的功能:
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
的显示,
这个用户可以访问 localhost:9200
同时用于下面的 xpack javaApi
连接用户
添加 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
时可能会有一些不一致,有一些差异。