1、在 Elasticsearch 主节点上配置 TLS
停止 es 集群所有节点,在其中一个节点执行:
使用 cd 命令进入 es 安装目录,然后运行下列命令:
./bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""
将生成的 elastic-certificates.p12 文件分发到其他 es 节点的 config 目录下:
scp config/elastic-certificates.p12 root@10.255.50.69:/usr/local/elastic/config
在所有节点上修改 elastic-certificates.p12 文件的权限为 es
chown es.es config/elastic-certificates.p12
接下来,在所有 es 节点的配置文件 config/elasticsearch.yaml 中,将下列代码行粘贴到文件末尾。
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
2、创建 Elasticsearch 集群密码
启动 es,进入 es 安装目录。然后我们运行命令 bin/elasticsearch-setup-passwords auto
。这将会为不同的内部堆栈用户生成随机密码。或者,您也可以跳过 auto 参数,改为通过 interactive 参数手动定义密码。请务必记录这些密码,我们很快就会再次用到这些密码。建议将密码写入到一个文件中,放在 es 目录下即可
3、Kibana 界面实现密码保护
我们要做的最后一件事是配置 Kibana。我们可以从之前 setup-passwords
命令的输出内容中找到密码。
我们使用 cd 命令更改至 Kibana 目录,然后使用您的文本编辑器打开 config/kibana.yml
文件。找到类似下面的代码行
#elasticsearch.username: "user"
#elasticsearch.password: "pass"
kibana 开启密码保护后,最好不要修改预留账号密码,否则很容易出现 kibana 不能正常打开的问题
4、在 logstash 中实现安全性
修改 logstash 配置文件中连接 es 的 output 区域
output {
elasticsearch {hosts => ["10.255.50.67:9200","10.255.50.68:9200","10.255.50.69:9200"]
index => "syslog"
user => "elastic"
password => "1q2w3e4r"
}
}
问题
kibana 修改预留账号密码导致不能打开
登录之前记录 es 密码的主机,执行一下命令,user 后的 kibana 自行替换成相关用户,password 后的密码修改为初始化时生成的 kibana 密码。
curl -H "Content-Type:application/json" -XPOST -u elastic 'http://10.255.50.68:9200/_xpack/security/user/kibana/_password' -d '{"password":"QRZMtcXi84l1lj7UL3H4"}'
es 启动就绪后,报错
Authentication of [elastic] was terminated by realm [reserved] – failed to authenticate user [elastic]
问题处理流程:1. 停止 es
2. xpack 取消
3. 启动,以无密码形式登录
4. 删除.security(curl -XDELETE 'http://127.0.0.1:9200/.security-7')5. 停 es
6. xpack 开启
7. 删除 elasticsearch/config 目录下 elasticsearch.keystore、elastic-certificates.p12
8. bin 目录下执行
./elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""
如果是集群,需要把 config/elastic-certificates.p12 拷贝到其他节点的 config 目录下
9. es 节点依次启动
10. 设置密码, 等待 cluster health is currently RED. 变为 green 在下一步