es/kibana/x-pack安装
默认的 es + kibana 是没有登录界面,也没有安全校验,所以默认只有有人知道了端口就能随便的访问,数据也很容易被盗。 x-pack
可以增加密码登录后台,同时任何api的请求也需要通过安全校验。
本教程的所有的版本都是: 6.3.2
本地安装
参考链接: https://www.elastic.co/guide/en/x-pack/master/java-clients.html
-
elasticsearch上安装x-pack
常用的安装方式
elasticsearch-plugin install x-pack
基本上都是安装失败,本来x-pack文件很大,同时又被墙。所以笔者支持用户去用迅雷或者其他软件来下载软件(笔者下载了18小时左右)。本地安装为:
bin/elasticsearch-plugin install file:x-pack-6.2.3.zip
如果有多个节点的话,每个节点都需要安装这个插件。
-
kibana上安装x-pack
kibana也采用本地安装:
bin/kibana-plugin install file:x-pack-6.2.3.zip
更改 elasticsearch 的密码
在 elasticsearch-6.2.3-0/bin/x-pack
下,执行./setup-passwords interactive
然后回车设置密码。
其他节点只要安装了x-pack插件的话,就可以直接加入了,无需再设置密码了。
kibana上设置es密码
打开 kibana.yml
设置:
elasticsearch.username: "elastic"
elasticsearch.password: "changme"
kibana设置可通过互联网访问
打开 kibana.yml
设置:
OK,现在重启kibana服务。访问界面,会进入一个登陆界面。用上面的密码和账户就能登陆。
java驱动和使用密码
-
导入依赖
<!-- 指定仓库 --> <repository> <id>elasticsearch-releases</id> <url>https://artifacts.elastic.co/maven</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <!-- 依赖 --> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>6.2.3</version> </dependency> <!-- add the x-pack jar as a dependency --> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>x-pack-transport</artifactId> <version>6.2.3</version> </dependency>
-
使用x-pack创建密码client
import org.elasticsearch.xpack.client.PreBuiltXPackTransportClient; public Client client () { Settings settings = Settings.builder() .put("cluster.name", "my-application") .put("xpack.security.user", "elastic:changme").build(); TransportClient client = null; try { client = new PreBuiltXPackTransportClient(settings); for (String node : list) { String[] split = node.split(":"); String ip = split[0]; int port = Integer.valueOf(split[1]); client.addTransportAddress(new TransportAddress(InetAddress.getByName(ip), port)); } } catch (UnknownHostException e) { e.printStackTrace(); } return client; }
上面一定要使用
PreBuiltXPackTransportClient
而不能使用PreBuiltTransportClient
,因为PreBuiltTransportClient
里的settings里不包含xpack.security.user
属性,启动就会报错。
zipkin使用密码
在 zipkin下加入配置就行:
zipkin:
storage:
type: elasticsearch
elasticsearch:
hosts: http://127.0.0.1:9200
cluster: elasticsearch
index: zipkin
username: elastic # 账户
password: changme # 密码
index-shards: 1
index-replicas: 1