当前位置: 首页 > article >正文

elasticsearch集群部署及加密通讯

原文地址:elasticsearch集群部署及加密通讯 – 无敌牛

欢迎参观我的个人博客:无敌牛 – 技术/著作/典籍/分享等

第零步,准备

给各台设备配置虚拟主机名,这样集群不依赖IP,即使IP变动,改动也更方便。参考往期文章:https://www.madbull.site/?p=1094 第三步 3.2 一节。

第一步,颁发证书

本次文章自建CA根证书,以自建证书给各个子节点颁发服务端证书。

参看这篇文章:https://www.madbull.site/?p=1111 自建根证书,并用此根证书给三个设备分别颁发证书。

注意:在创建服务端证书时,用到的 csr.conf 文件中,commonNamealt_names 配置要根据自己的实际情况做相应修改。

第二步,修改配置文件

修改 /etc/elasticsearch/elasticsearch.yml 文件,内容如下:

cluster.name: CLUSTERNAMEXXX
node.name: xxxxnode1

path.data: /data/xxxx/data 
path.logs: /data/xxxx/logs
path.repo: /data/xxxx/esbackup

bootstrap.memory_lock: true
network.host: xxxxnode1, 127.0.0.1
discovery.seed_hosts: ["xxxxnode1", "xxxxnode2", "xxxxnode3"]

action.destructive_requires_name: false

xpack.security.enabled: true

xpack.security.enrollment.enabled: true

xpack.security.http.ssl:
  enabled: true
  key: certs/private.key
  certificate: certs/public.crt
  certificate_authorities: certs/CAs/myCA.crt
  verification_mode: certificate

xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  key: certs/private.key
  certificate: certs/public.crt
  certificate_authorities: certs/CAs/myCA.crt

cluster.initial_master_nodes: ["xxxxnode1", "xxxxnode2", "xxxxnode3"]

配置项解释:

cluster.name: 集群名称,同一个集群里的各个节点,配置相同集群名称。

node.name: 当前服务节点名称,在集群里名字是唯一的

path.data: 数据保存路径

path.logs: 日志存储路径

path.repo: 数据库快照备份路径

bootstrap.memory_lock: 是否锁定内存,不允许磁盘交换。如果大内存,可以设置为true;否则内存空间不够则可能数据库服务启动失败。

network.host: 如果不考虑设备有多个IP的情况,可以直接配置成 0.0.0.0 或者 _site_。集群需要跨主机访问,所以需要开放端口,不能只绑定在 _local_ 或者 127.0.0.1 。

discovery.seed_host: 用于发现集群中其他节点的初始主机列表。

action.destructive_requires_name: 控制执行某些破坏性操作,设置 false 操作验证会减少。

xpack.security.enabled: 是否启用xpack安全特征,包括认证、授权和加密等。

xpack.security.enrollment.enabled: 是否启用节点自动加入集群。

xpack.security.http.ssl: https访问相关配置。

xpack.security.transport.ssl: 节点间通讯通过ssl加密相关配置。

verification_mode: 验证模式,此处为证书

key: 私钥文件

certificate: 证书文件

certificate_authorities: 信任的CA根证书文件

cluster.initial_master_nodes: 指定哪些节点可以作为主节点 master

需要根据各个服务器自身的情况做调整。

第三步,安装证书

把第一步申请的服务端私钥、服务端证书 和 CA根证书,放在 key、certificate、certificate_authorities 参数指定的文件路径。目录结构如下,并确保文件对minio用户可读。此处用了软连接,也是同样的效果,可以把对应的文件直接放在指定的位置上。

注意:三台设备用到的根证书,也就是 CAs/myCA.crt 是同一个,但是 服务端私钥和服务端证书则各不相同。xpack.security.http.ssl 下的配置 和 xpack.security.transport.ssl 下的配置可以不是同一个文件。

elasticsearch集群 不信任系统的证书,所以把CA证书添加到系统信任列表不起作用,必须把根证书放在 certificate_authorities 指定的位置。

最后

三台设备重启 elasticsearch 服务: systemctl restart elasticsearch。

如果 原来的 elasticsearch 库中已经有数据,设备只会保留主设备的数据,其他设备的数据将被删除。

如果遇到三台设备都只找到自己,并选定自己是主设备,且找不到其他设备,尝试删除数据目录(也就是path.data配置项指定的目录)下 _state 文件夹下的所有内容,重启 elasticsearch 服务尝试组建集群。


elasticsearch基本操作,参考文章:https://www.madbull.site/?p=424

python开发基本操作参考示例:https://www.madbull.site/?p=606


http://www.kler.cn/a/414517.html

相关文章:

  • 鼠标前进后退键改双击,键盘映射(AutoHotkey)
  • uni-app 蓝牙开发
  • shell查看服务器的内存和CPU,实时使用情况
  • 【网络安全设备系列】12、态势感知
  • MySQL乐观锁
  • 爆改老旧笔记本---将笔记本改造为家用linux服务器
  • 架构-微服务-环境搭建
  • ubuntu连接副屏显示器不量的一系列踩坑记录
  • 【PGCCC】Postgresql BRIN 索引原理
  • Jenkins Nginx Vue项目自动化部署
  • faiss库中ivf-sq(ScalarQuantizer,标量量化)代码解读-2
  • 淘宝关键词挖掘:Python爬虫技术在电商领域的应用
  • 虚拟现实(VR)与增强现实(AR)有什么区别?
  • 【k8s深入理解之 Scheme 补充-6】理解资源外部版本之间的优先级
  • TypeScript中function和const定义函数的区别
  • java 排序 详解
  • 【Unity基础】初识Unity中的渲染管线
  • 中科亿海微SoM模组——波控处理软硬一体解决方案
  • HarmonyOS 5.0应用开发——装饰器的使用
  • NAT:连接私有与公共网络的关键技术(4/10)
  • NLP任务四大范式的进阶历程:从传统TF-IDF到Prompt-Tuning(提示词微调)
  • C++《二叉搜索树》
  • Vue3.0性能提升主要是通过哪几方面体现的?通过编译阶段、源码体积、响应式系统等进行讲解!
  • 什么是串联谐振
  • 【动态规划入门】【1.2打家劫舍问题】【从记忆化搜索到递推】【灵神题单】【刷题笔记】
  • 【新人系列】Python 入门(十四):文件操作