配置
密码
默认情况下,Elasticsearch 不需要密码就能进行访问。如果你的 ES 是部署在内网环境的,那么你可以不用设置密码。但是如果你的 ES 是部署在公网环境的,那么最好设置密码,否则你的 ES 将可能被攻击,数据可能被泄露甚至被破坏。
ES 提供了几种方式来设置密码,这里我们只介绍最简单的一种方式,即通过 ES 自带的 X-Pack 来设置密码。步骤如下:
- 停止 ES 集群中的所有节点,同时,也需要停止 Kibana。
- 在 ES 集群中的每个节点的
elasticsearch.yml
文件中,添加如下配置。
xpack.security.enabled: true
# 如果 ES 是单节点, 那么需要加上下面这行配置
discovery.type: single-node
- 启动 ES 集群中的所有节点。然后,随便找一个节点,在 ES 安装目录下运行下面的命令。
使用 auto
参数将随机生成的密码输出到控制台,您可以在以后根据需要更改这些密码:
./bin/elasticsearch-setup-passwords auto
如果要使用自己的密码,请使用 interactive
参数而不是 auto
参数运行命令。使用此模式可引导您完成所有内置用户的密码配置。
./bin/elasticsearch-setup-passwords interactive
如果一切顺利,那么你将看到下面的输出(以下用户都是 ES 内置的用户):
警告
您可以在集群中的任何节点运行 elasticsearch-setup-passwords
命令。但是,整个集群仅能执行一次该命令。elastic
用户设置密码后,不能再次执行 elasticsearch-setup-passwords
命令。
- 配置
Kibana
连接到Elasticsearch
的密码
在
kibana.yml
中添加如下配置:elasticsearch.username: "kibana_system"
在 Kibana 安装目录下执行下面的命令:
a. 生成
kibana.keystore
文件./bin/kibana-keystore create
b. 将
kibana_system
用户的密码添加到 Kibana 密钥库:./bin/kibana-keystore add elasticsearch.password
重启 Kibana。
经过上面的几个步骤,就可以使用用户 elastic
登录 ES 了。
在浏览器输入 http://localhost:9200
,如果你看到下面的输出,那么恭喜你,你已经成功设置了 ES 的密码。
同时,我们访问 http://localhost:5601
,如果你看到下面的输出,那么恭喜你,你已经成功设置了 Kibana
连接到 Elasticsearch
的密码。