前言:我们搭建了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 插件的授权类型,basic是免费的,还有其他收费版本
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
#ip地址
network.host: 0.0.0.0
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["172.16.86.142:9301"]
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
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 插件的授权类型,basic是免费的,还有其他收费版本
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配置用户名和密码结束。