X-Pack是ES扩展功能,提供安全性,警报,监视,报告,机器学习和许多其他功能。 ES7.0+之后,默认情况下,当安装Elasticsearch时,会安装X-Pack,无需单独再安装。具体查看官方文档相关配置项也在官方文档中, ES版本是8.2.3,环境windows server2012 R2
1、创建证书颁发机构
cmd定位到es运行时(bin)目录输入以下命令
elasticsearch-certutil ca
提示输入密码和文件输出路径,可以直接回车,也可以输入密码和输入自定义存放路径进行设置.回车的话,会生成如下文件
后缀为ca的证书颁发机构文件
2、为节点创建证书文件
cmd定位到es运行时(bin)目录输入以下命令
elasticsearch-certutil cert --ca elastic-stack-ca.p12
提示输入密码和文件输出路径,可以直接回车,也可以输入密码和输入自定义存放路径进行设置.回车的话,会生成如下文件
3、keystore和truststore设置密码
keystore:存放公钥,私钥,数字签名等信息 truststore:存放信任的证书 keystore和truststore都存放key,不同的地方是truststore只存放公钥的数字证书,代表了可以信任的证书,keystore存放私钥相关.
cmd定位到es运行时(bin)目录输入以下命令
elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password
elasticsearch-keystore add xpack.security.http.ssl.truststore.secure_password
创建证书时如果输了密码,需要输入这个密码.这里不做输入回车,操作完成之后,相关的信息就会写入到config文件夹下的elasticsearch.keystore中
4、修改配置文件修改Xpack相关信息
打开elasticsearch.yml文件加入以下配置
xpack.security.enabled: true
xpack.security.http.ssl:
enabled: false
verification_mode: certificate
truststore.path: elastic-certificates.p12
keystore.path: elastic-certificates.p12
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: elastic-certificates.p12
truststore.path: elastic-certificates.p12
这里要注意elastic-certificates.p12证书文件的位置,这里默认读取的是config文件夹下,所以需要拷贝一下.
5、集群环境
需要将操作节点生成的证书文件复制到其余节点的config目录下.
6、运行
按上述配置结束完毕之后,在操作节点重置elastic用户的密码, cmd定位到es运行时(bin)目录输入以下命令
elasticsearch-reset-password -u elastic -i <password>
输入用户名密码完成登录.
7、kibana访问
elastic账号是无法用于kibana的登陆的,所以需要自行创建账号,并授权,cmd定位到es运行时(bin)目录输入以下命令
(1)、创建登录kibana的账号
elasticsearch-users useradd 用户名
接着会提示输入密码,键入密码即可.这里用户创建完成
(2)、角色授权操作
elasticsearch-users roles -a superuser 用户名
elasticsearch-users roles -a kibana_system 用户名
superuser能正常打开es的9200端口,kibana_system配置后才可以正常对接kb和es
(3)、查看授权
elasticsearch-users roles -v 用户名
授权成功.
(4)、修改kibana配置文件kibana.yml
修改以下配置:
elasticsearch.username: "用户名"
elasticsearch.password: "用户密码"
elasticsearch.hosts: ["http://1.1.1.1:9200","http://2.2.2.2:9200","http://3.3.3.3:9200"]
server.port: 5601
(5)、集群环境
如果(4)中host配置了多个节点,需要在节点中重复添加用户和授权的操作