搭建ES集群以及开启安全通信
客户成功部
2023.9.19
(1) 集群部署实战
1.1 准备配置文件
修改es配置文件,实验环境为了避免和已经部署的es端口(9200,9300)冲突,配置其他端口。
节点1配置示例,其他节点需要修改node.name
1.2 启动es服务
启动es,通过ES_PATH_CONF变量指定配置文件位置,使用elsearch用户启动。
1.3 验证集群状态
验证服务端口
验证索引访问
因为没有创建任何索引,所以索引信息是空的。
查看集群状态,现在只启动了2个节点,根据最小主节点数配置,已经可以组成集群。
(2) 集群安全配置实战
以上创建的集群没有启用安全功能,任何未授权用户都可以查询、修改、配置索引。任何节点都可以加入到集群当中。为了保障集群安全,需要开启安全扩展功能xpack。在开启xpack之前需要先配置集群节点之间的TLS通信。
2.1. 节点间通信加密
1) 生成CA证书
在其中一个节点运行
一路回车,提示输入密码对key加密时选择回车不加密。在当前目录下会生成一个elastic-stack-ca.p12文件。
2) 生成节点证书文件
在同一节点运行以下命令生成集群节点证书。
一路回车。当前目录下会生成一个elastic-certificates.p12节点证书文件,copy到所有node节点的$ES_PATH_CONF目录下。编辑es的配置文件开启xpack安全功能
vi elasticsearch.yml
启动所有节点。
验证集群节点之间已经开启了tcp tls通信
2.2. 用户访问认证
通过命令工具添加file realm中的用户,该命令是命令行工具不需要经过密码认证,任何时候都可以创建用户。本质是添加用户和用户权限信息到node节点config文件下users和users_roles文件。
新增file realm用户后,需要手动copy config下的users和users_roles文件到集群中的所有节点。
验证集群已经开了用户认证。
2.3. 配置https访问
配置集群节点开启https加密
验证集群开启了https访问