首页 > 其他分享 >Elasticsearch集群生产配置

Elasticsearch集群生产配置

时间:2024-03-06 17:22:36浏览次数:19  
标签:CA 配置 elasticsearch master 集群 Elasticsearch 节点

集群配置

在组建集群时,需要额外添加集群相关的配置,如节点角色、集群发现、初始主节点、主节点选举和安全认证等,以下配置均在上篇创建Elasticsearch单机实例的基础上搭建。

设置集群名称

vi elasticsearch.yml

# 统一集群名字
cluster.name: my-application

# 移除该配置
discovery.type: single-node

节点配置

节点角色

默认情况下,单节点拥有所有的角色,如master、data、ingest等。实际应用中,需要根据服务器资源和集群大小,进行节点角色规划。一些参考如下

  • 拥有master角色的节点数量不少于三个
  • master节点不索引和检索数据,对cpu、内存、存储的要求较低,如2GB内存、50GB存储、中等CPU。
  • data节点要索引、检索、存储数据,对cpu、内存、存储的要求较高,如8+GB内存、500GB存储、高性能CPU。
  • 服务器资源限制或者集群较小时,可以将节点同时配置为master和data角色。

根据集群实际情况,在elasticsearch.yml中选择性增改如下配置

# 只作为master
node.roles: ["master"]

# 既作为主节点又作为数据节点
node.roles: ["master", "data"]

主节点初始化/选举

在集群刚启动时,还无法进行主节点选举,从指定的初始化主节点列表配置中选取一个可用的节点作为主节点。

根据主节点数量和名字,在elasticsearch.yml中新增如下配置

# 这个参数用于配置一个节点被选举为主节点时,需要获得的其他主节点的同意票数。
# 在一个Elasticsearch集群中,主节点的选举是通过投票机制进行的,当一个节点认为自己可以成为主节点时,
# 它会向其他节点发出请求,如果获得了超过discovery.zen.minimum_master_nodes个节点的同意票,那么它就会成为主节点。
# 推荐配置为(主节点数量 + 1)/2,为了保证高可用,投票主节点数量最少三个。
discovery.zen.minimum_master_nodes: 2

# 集群启动时,ES实例数量不够无法选举主节点,从以下节点中任选一个为主节点
cluster.initial_master_nodes: ["node-1", "node-2"]

节点发现

当节点启动后,会利用配置的节点连接信息,连接到该节点以加入集群,节点间使用transport.port端口进行通信。

根据节点连接信息,在elasticsearch.yml中新增如下配置

# 集群初始节点,新加入集群的节点会通过这个列表中的节点进行发现和加入,
# 因此,只需要在每个节点的配置文件中配置一个或者多个初始节点的连接信息即可。
# 一般来说,为了提高集群的可靠性和容错性,可以在discovery.seed_hosts中列出多个节点的连接信息
discovery.seed_hosts: ["127.0.0.1:9300", "127.0.0.2:9300"]

安全配置

为了保证集群及数据安全,我们还需要开启安全认证,安全认证开启后:

  • 集群间通信需要启用SSL,使用内部生成的数字证书验证身份和加密通信
  • 客户端访问elasticsearch时,需要提供身份证明

在elasticsearch.yml中新增如下配置以开启安全认证

# 启用安全认证
xpack.security.enabled: true

# 启用安全认证后,基础授权的elasticsearch必须启用集群加密通信
xpack.security.transport.ssl.enabled: true

集群加密通信

启用xpack.security.enabled之后,basic授权的elasticsearch在节点间通信时,必须启用SSL。

生成Certificate Authority(CA,证书颁发机构)

CA可以是公共的、私有的或者是自签名的。公共的CA(如Let's Encrypt、DigiCert等)被广泛信任,并且其根证书被包含在操作系统和浏览器的信任列表中。

私有的CA通常由组织自己创建,用于颁发内部系统和服务的证书。CA的作用是验证证书请求者的身份,并签署包含公钥和相关信息的数字证书。

生成CA文件默认名字是elastic-stack-ca.p12,其中包括CA证书和CA私钥

cd /elasticsearch-root
# 使用默认文件名、并对私钥进行加密
./bin/elasticsearch-certutil ca -pass "admin1246"
生成Certificate(证书)

Certificate是由CA签发的数字证书,包含了实体的公钥、标识信息(如域名、组织信息等)以及CA的数字签名。

证书可以用于安全通信中的身份验证和加密通信​。对于Web服务器,证书通常包含了服务器的公钥和域名信息,用于在HTTPS连接中验证服务器的身份并进行加密通信。

利用CA生成签名证书,生成文件名默认是elastic-certificates.p12

./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 --ca-pass "admin1246"
配置节点加密通信

只需要在一个节点上生成数字证书,将生成的数组证书elastic-certificates.p12,拷贝到集群中所有节点的/elasticsearch-root/config目录下

然后在elasticsearch.yml中新增如下配置

xpack.security.transport.ssl.verification_mode: certificate
# remove elastic-certificates.p12 file to config directory
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

设置内置用户密码

集群加密配置好之后,重启elasticsearch,然后来到/elasticsearch-root/bin目录下,通过elasticsearch-setup-passwords命令设置内置用户密码。

设置好之后可以通过内置的elastic和kibana访问elasticsearch集群,也可以新增用户。

./bin/elasticsearch-setup-passwords interactive

启动集群

完成上述配置后,依次启动节点。启动成功后,访问任一节点http://127.0.0.1:9202/_cat/nodes,可以看到集群中的节点信息

标签:CA,配置,elasticsearch,master,集群,Elasticsearch,节点
From: https://www.cnblogs.com/cd-along/p/18057066

相关文章

  • 关于Maven创建javaweb项目在配置Tomcat的问题(1)
    先将Maven项目转换成Java项目,确保没有架包没有报错和编译错误的情况下进行如下操作:打开Maven项目中的pom.xml文件,找到标签。查看里面是否配置元素,有则直接添加如下配置。org.codehaus.cargocargo-maven2-plugin1.7.6tomcat9xembedded如果没有,则先添加元素,然后再添加......
  • Docker启动单机elasticsearch生产配置
    宿主机目录挂载在docker容器中运行elasticsearch时,需要进行配置、插件、日志和数据文件的挂载。创建挂载文件切换es用户sues01创建es本地目录cd/data&&mkdires_node1在es_node1下面创建配置、日志、数据目录cd/data/es_node1&&mkdirlogsdataconfigplugins基......
  • 用phpStudy配置apache服务器
    一:下载phpStudy1进入官网https://www.xp.cn/download.html选择稳定的2018版本2执行下载好的文件,选择下载地址注意!这里的安装路径不能有中文3亮两个绿灯代表正常运行,如果亮红灯要尽快排除故障二:点击查看phpStudy的功能这里不做详细介绍,自行研究三:配置phpStudy在端口......
  • 【信创低代码】JeecgBoot适配达梦和人大金仓,TiDB配置手册
    项目介绍JeecgBoot是一款专为信创产业设计的企业级低代码开发平台,目前已经实现了对多种国产数据库的默认兼容,提供了丰富的组件和模板,可帮助用户快速搭建信创应用系统。其灵活的定制功能也使用户能够根据具体需求进行个性化定制,满足不同场景的要求。通过JeecgBoot,信创用户可以更高......
  • Elasticsearch 本地单机生产配置
    本地安装创建启动用户elasticsearch不能由root用户启动安全性:以root用户身份启动Elasticsearch会增加系统受到攻击的风险。Elasticsearch的进程可能会受到来自外部的恶意攻击,如果以root用户身份启动,攻击者可能会获取到root权限,从而对系统造成严重的损害。最小权限原则:根据最......
  • 极狐GitLab Runner Kubernetes(k8s)配置
    GitLab是一个全球知名的一体化DevOps平台,很多人都通过私有化部署GitLab来进行源代码托管。极狐GitLab是GitLab在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。资料Kubernetes高级配置添加额外主机别名Pod的DNS配置极狐GitLabRunner......
  • 配置ssh证书登录
    系统:centos7.61、生成公钥和私钥,任何目录下都行ssh-keygen-trsa2、提示默认生成位置为/root/.ssh/id_rsa,直接回车。(也可以自己改)  提示输入证书的密码,可以留空,建议输入,如果输入了,则需要再次确认,记住这个证书密码(证书再加一层密码,这样即使证书丢失,也有第二个保险,有......
  • vue项目打包之后更改某些配置项
    .env.development(开发环境)、.env.production(生产环境)和 .env.test(测试环境)等环境变量,一旦你运行了 npmrunbuild 命令,环境变量的值就被固定下来了,你不能再直接更改 .env文件中的值来影响已经构建好的应用。但是有时候也需要修改某些配置项,而不是重新打包,因此需要另外的方法。......
  • 在 Exchange Server 中配置特定于客户端的消息大小限制
    微软官方详细文档如下:https://learn.microsoft.com/zh-cn/exchange/architecture/client-access/client-message-size-limits?view=exchserver-2019解决方法:通过查看官方文档,打开cmd复制执行下面%windir%的部分命令,重新IIS服务,问题解决。注:下面的数值表示200MBActiveSync%E......
  • 【架构师视角系列】QConfig配置中心系列之Server端(三)
    声明原创文章,转载请标注。https://www.cnblogs.com/boycelee/p/17993697《码头工人的一千零一夜》是一位专注于技术干货分享的博主,追随博主的文章,你将深入了解业界最新的技术趋势,以及在Java开发和安全领域的实用经验分享。无论你是开发人员还是对逆向工程感兴趣的爱好者,都能在《......