网站首页 > 开源技术 正文
一、采坑过程
最近在配置elasticsearch生产可用的集群环境时,集群搭建完成后,为了安全,启用es集群的安全配置,根据官方文档[Set up minimal security for Elasticsearch](https://www.elastic.co/guide/en/elasticsearch/reference/7.13/security-minimal-setup.html)这一节来配置集群账户密码,然后就出现了开启安全模式后,./bin/elasticsearch-setup-passwords auto ,./bin/elasticsearch-setup-passwords interactive 两个命令均无法访问。提示集群健康状态无法检查,实际上就是集群本身的通讯也存在问题。提示信息如下:
Failed to determine the health of the cluster running at http://192.168.122.1:9200
Unexpected response code [503] from calling GET http://192.168.122.1:9200/_cluster/health?pretty
Cause: master_not_discovered_exception
It is recommended that you resolve the issues with your cluster before running elasticsearch-setup-passwords.
It is very likely that the password changes will fail when run against an unhealthy cluster.
Do you want to continue with the password setup process [y/N]ERROR: User cancelled operation
看了很多遍官方文档,发现了一句话:
The minimal security scenario is not sufficient for production mode clusters. If your cluster has multiple nodes, you must enable minimal security and then configure Transport Layer Security (TLS) between nodes.
意思是说:最小安全方案对于生产模式集群是不够的。如果您的集群有多个节点,则必须启用最低安全性,然后在节点之间配置传输层安全性 (TLS)。
如果只有一个节点,那么elasticsearch.yml添加如下配置即可:
discovery.type: single-node
但是因为本身我的集群有3个节点,那肯定不能设置为单节点模式,那么这一项不可用,根据文档的提示,那么集群环境下,其实还需要配置其他的安全配置。于是解决方案其实就出来了。根据官方文档的后面一个章节[Set up basic security for the Elastic Stack](https://www.elastic.co/guide/en/elasticsearch/reference/7.13/security-basic-setup.html#security-basic-setup)的内容进行配置集群环境的基本安全配置就OK了。
2、 配置步骤:
提示,因为我每次操作命令都是进入es的bin目录下,因此与官方文档不完全相同。
2.1 生成CA证书
在任何单个节点上,使用 elasticsearch-certutil 工具为您的集群生成 CA。
./elasticsearch-certutil ca
a.出现提示时,接受默认文件名,即 elastic-stack-ca.p12。此文件包含 CA 的公共证书和用于为每个节点签署证书的私钥。
b.输入 CA 的密码。如果不部署到生产环境,您可以选择将密码留空。
2.2 配置CA证书
在任何单个节点上,为集群中的节点生成证书和私钥。包括在上一步中生成的 elastic-stack-ca.p12 输出文件。
./elasticsearch-certutil cert --ca elastic-stack-ca.p12
a.输入您的 CA 的密码,或者如果您在上一步中没有配置密码,请按 Enter。
b.为证书创建密码并接受默认文件名。
输出的文件是一个名为 elastic-certificates.p12 的密钥库。这个文件包含节点证书、节点密钥和 CA 证书。
2.3 复制证书到集群
在集群中的每个节点上,将 elastic-certificates.p12 文件复制到 $ES_PATH_CONF 目录。也就是config目录。
2.4 修改配置文件
a.基本集群配置,不启用安全也需要的配置:
cluster.name: my-cluster #每个节点一致
node.name: node-1 #每个节点不同
b.安全配置
由于在群集的每个节点上使用相同的Elastic-Certificate.p12文件,因此将验证模式设置为证书:
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
2.5 配置密码
如果在创建节点证书时输入了密码,运行以下命令以将密码存储在Elasticsearch密钥库中:
./elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
./elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
2.4-2.5的步骤在每个节点中都需要进行。
2.6 重新启动es
我是采用启动的时候指定pid文件的方式,启动命令如下:
./elasticsearch -d -p /home/elk/pid/es-node-01
就可以使用以下命令停止es
cat /home/elk/pid/es-node-01
kill -SIGTERM 32167 #32167是上一句语句输出的结果
2.7 配置账户密码
再次启动后,即可运行以下命令配置账户密码:
./elasticsearch-setup-passwords auto
就会自动输出所有内置账户的随机密码,可以自行修改。
也可以使用以下命令自定义密码:
./elasticsearch-setup-passwords interactive
上述命令只需要在其中一个节点运行,不需要在所有节点运行。
上述输出的密码可以配置到kibana或者其他需要连接es的工具中,比如cerebro监控。
3、总结
依靠零碎学习的内容,实际上很难完整地掌握一项技术的核心内容。还是需要看官方文档,并且最好各个章节都理解一下,才能选择出适合自身需要的配置方式。
猜你喜欢
- 2024-11-07 如何将kibana的dashboard集成到自有系统中
- 2024-11-07 集群分布式下日志架构的搭建(集群日志管理)
- 2024-11-07 Elasticsearch算分优化方案之rescore_query
- 2024-11-07 Elasticsearch 三板斧之 Elasticsearch 安装
- 2024-11-07 最新JumpServer未授权访问漏洞(CVE-2023-42442)分析
- 2024-11-07 Spring Boot搭建 ELK,这才是正确看日志的方式
- 2024-11-07 大量使用 items_per_inner_pack 和 inner_packs_per_master_pack
- 2024-11-07 Kibana(一张图片胜过千万行日志)——转
- 2024-11-07 x-pack-sql-jdbc 发布后提示版本不兼容
- 2024-11-07 ES单机通过端口搭建伪集群(如何搭建es集群)
你 发表评论:
欢迎- 03-26业务监控—一站式搭建jmeter+telegraf+influxdb+Grafana看板
- 03-2615个最好的性能测试工具(软件测试工程师必备)
- 03-26软件测试工程师必备技巧!(软件测试工程师入门教程)
- 03-26UE4基础知识总结(七)(ue4入门)
- 03-26Portkeys推出新款HDMI播放器:5.5英寸FHD屏幕,支持4K输入/输出
- 03-26数字时代的纯粹,HiFiMan HM-901S 播放器体验
- 03-26CBN丨Double 11 sales shows resilience in China’s consumption
- 03-26AKG K812简单听感(akgk812pro评测)
- 最近发表
-
- 业务监控—一站式搭建jmeter+telegraf+influxdb+Grafana看板
- 15个最好的性能测试工具(软件测试工程师必备)
- 软件测试工程师必备技巧!(软件测试工程师入门教程)
- UE4基础知识总结(七)(ue4入门)
- Portkeys推出新款HDMI播放器:5.5英寸FHD屏幕,支持4K输入/输出
- 数字时代的纯粹,HiFiMan HM-901S 播放器体验
- CBN丨Double 11 sales shows resilience in China’s consumption
- AKG K812简单听感(akgk812pro评测)
- 盘点索尼Walkman发展史,哪台播放器让你印象深刻
- LUXMAN力仕 DA-07X 解码器#发烧hifi
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)