前言:我们搭建了elasticsearch,在没有设置访问用户名和密码的情况下,任何人任何网络都是可以通过 ip+port 进行访问 elasticsearch,获取到对应的 elasticsearch 信息的。这样显然是有隐患的,因此根据需求给elasticsearch设置用户名和密码。
在 elasticsearch 环境搭建成功的基础上进行下面操作,如果要搭建 elasticsearch集群,可以移步:Linux环境下Elasticsearch集群和Elasticsearch-head的安装及配置
1. 修改 elasticsearch.yml 文件
由于我的 elasticsearch集群 安装在 /zdrl/elasticsearch/elasticsearch-cluster 目录下,所以后续操作在目录下进行。 本次操作仅对单节点进行配置用户和密码,暂不涉及集群。
以修改 node9201 节点的配置为例 在 /zdrl/elasticsearch/elasticsearch-cluster 目录下运行指令
vim elasticsearch9201/config/elasticsearch.yml

添加一下配置:
xpack.license.self_generated.type: basic
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
加上之前搭建es集群的配置,node-9201 节点完整的配置如下:
cluster.name: es-cluster
node.name: node-9201
http.port: 9201
transport.tcp.port: 9301
node.master: true
node.data: true
network.host: 0.0.0.0
discovery.seed_hosts: ["172.16.86.142:9301"]
cluster.initial_master_nodes: ["node-9201"]
path.data: /zdrl/elasticsearch/elasticsearch-cluster/data/data9201
path.logs: /zdrl/elasticsearch/elasticsearch-cluster/logs/logs9201
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.license.self_generated.type: basic
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

2. 启动elasticsearch节点
记得要先切换为 非root 用户,看过我之前博客的朋友就会知道我当初为了启动 elasticsearch 创建的是 esuser 用户。 所以先切换成 esuser 用户,再启动 elasticsearch
注意:如果不小心还是用 root 去启动elasticsearch,那么程序一运行,就会在data和logs目录下生成对应的目录文件,那么如果此时你切换成 esuser 用户,启动elasticsearch,也会报错,错误的大致意思是 权限不足。 解决方法:删除掉 data 和 logs 目录下的所有文件,切换成esuser 用户,再启动 elasticsearch 即可。
su esuser
./elasticsearch9201/bin/elasticsearch -d
Tips:-d 表示后台运行elasticsearch进程

在 elasticsearch 运行起来之后,开始配置密码。 在 /zdrl/elasticsearch/elasticsearch-cluster 目录下 手动配置各种账号的访问密码:
./elasticsearch9201/bin/elasticsearch-setup-passwords interactive
Tips:密码长度最少要六位

3. 检验效果
浏览器访问 http://ip + port/9201 发现需要输入密码,这里输入 elastic 以及 自己设置的密码  输入正确即可查看到节点信息: 
至此,elasticsearch配置用户名和密码结束。
|