Elasticsearch主节点配置TLS

发布于 2022-07-12  148 次阅读


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

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" }'

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"
        }
}