点击上方蓝字”运维笔谈”,对话回复 “阿里云k8s” 可以获取《阿里云Kubernetes项目实战手册》PDF。
Elasticsearch 6.8.x和7.1.x开始 xpack可以免费使用基础版本了,支持常用es集群节点之后TLS和身份验证了,我们以官方的参考文档实操下。截至2024年9月10号(祝老师们节日快乐!)Elasticsearch 最新的版本已经是8.15,请大佬们注意版本。这里我们是以ES 7.6.2版本为例,并且已经规划好了ES集群节点。
参考官方文档:https://www.elastic.co/cn/blog/getting-started-with-elasticsearch-security

步骤一:在 Elasticsearch 主节点上配置 TLS
在ES主节点上使用elasticsearch-certutil命令来生成证书:
cd usr/local/es-m-80/elasticsearch-7.6.2/
bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""
# 注意命令后面有两个引号
执行完成之后:
vim 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
步骤二:将生成的config/elastic-certificates.p12复制到其他ES节点上
我们把config/elastic-certificates.p12复制到所有的ES节点上,并在elasticsearch.yaml 添加好xpack的配置。
步骤三:启动所有的ES节点(重要)
下一步应该是到了配置密码的部分,根据官方的文档,我只启动了主节点,ES的集群状态为RED,无法使用 bin/elasticsearch-setup-passwords auto ,会出现连接超时。
启动所有的es节点:
bin/elasticsearch -d #非root用户
然后在主节点执行:
bin/elasticsearch-setup-passwords auto #系统自动设置密码
bin/elasticsearch-setup-passwords interactive #用户自行设置密码

这样ES集群节点之间就是TLS加密通信了,我们在通过Kibana连接ES的时候,需要在kibana上配置好:
vim config/kibana.yml
#添加下
elasticsearch.username: "user" #配置的用户,elastic这个权限很高,谨慎使用
elasticsearch.password: "pass" #配置的密码
