Elasticsearch主节点配置TLS

1,390次阅读
没有评论

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 不能正常打开的问题

Elasticsearch 主节点配置 TLS

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 在下一步 
正文完
 0
评论(没有评论)
验证码