
默认的不修改任何配置的官方推荐的部署方式,很快!基本上 0 配置修改动动鼠标即可完成部署。参考如下文章:
Windows 部署 Elasticsearch + kibana 8.0 指南
但,云服务行不通?为啥?
以我自己的腾讯云服务器为例:
服务器是命令行模式登录,没法以浏览器方式访问。
而官方推荐的快捷部署方式,在kibana 端提供的访问方式如下:
i Kibana has not been configured.
Go to http://localhost:5601/?code=368039 to get started.
这个 localhost 针对的是云服务器,在我们本机是搞不定的。
更进一步说,官方提供的快捷的部署方式,针对的是本机有浏览器可以访问的场景,没有或者鲜有考虑云服务器部署情况。
那怎么办?
其实这个问题,我思考了好几个晚上。
最终还得回归本源:自己搞安全的方式,不用官方自动生成的 CA 和 密钥方式进行安全通信。
为什么?可控。
一图胜千言,接下来我们怎么做一目了然!

验证机制:


这一步,保存一下 elastic 密码,最后 kibana 访问要用。

参考:
https://www.elastic.co/guide/en/elasticsearch/reference/current/security-basic-setup.html
./bin/elasticsearch-certutil ca
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
设置:集群名称(按照业务需求来)设置:节点名称(按照业务需求来)设置:TLS 安全加密,参考如下:
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.client_authentication: required
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
注意:这和自动生成的是一样的。改一下认证名称就可以。
这一步貌似 7.X 没有!
如果您在创建节点证书时输入了密码,请运行以下命令将密码存储在 Elasticsearch 密钥库中:
./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
到这里,其实 TCP 安全通信部分配置完毕。
如果,此时启动 Elasticsearch, 至少不会报 TLS 加密相关的错误了。
由于,没有设置 Https,此时启动会报 http.p12 相关的 https 认证的错误。
参考:
https://www.elastic.co/guide/en/elasticsearch/reference/current/security-basic-setup-https.html
这块步骤非常多,直接按照官方文档来,就没有问题。
如果有问题,可以多来几遍!别怕出错。
./bin/elasticsearch-certutil http
这里很多细节步骤,一步步到底怎么来?
建议参考官方文档。
zip 文件:elasticsearch-ssl-http.zip,解压缩后截图如下所示:

这两个分别就是:ES 端 Https 的安全加密机制和 kibana与ES 端加密通信机制所需。
官方给出的 sample-elasticsearch.yml 和 sample-kibana.yml 暖暖的,很贴心。
其实我们用默认之前生成的就可以。
只需要把新生成的证书拷贝到给定的 config/certs 路径下面就可以。
./bin/elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password
到这里,其实 Elasticsearch 单独启动已没有报错了。
其实:sample-kibana.yml 给出详细说明。

前提:证书拷贝到 config 路径下面。

注意:7.X 版本 可以使用 elastic 账户的,8.0 安全需要,已被禁用。
默认给出了 kibana_system 账户,密码咋搞?
可以借助 reset_password 命令行工具实现。

直接:
./bin/elasticsearch-reset-password -u kibana_system
会自己帮我们生成密码,拷贝一下即可。
然后改动配置,参考如下:

至此,kibana 安全部署完毕。

输入最早保存的 elastic 密码就可以了(参考3.1步骤)。
大功告成!!!
本文分享自 铭毅天下Elasticsearch 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!