最新elasticsearch7(七、集群多主高可用配置)

elasticsearch8.15 高可用集群搭建(含认证&Kibana) ElasticSearch8.15 集群搭建(含认证) 阅读详情

前言

前面介绍了es7相关的一些用法。这一节我们来实践下集群高可用搭建,以及账号权限的配置。之前看了很多博主介绍的都是从主模式,主节点挂了集群也就不能对外服务了。
目前使用的最新版本7.6.0。账号配置需要破解x-pack包。(如果不需要设置密码可以忽略)

配置

集群间证书认证

不需要用户权限配置可以忽略。

## 在 $ES_HOME 目录下执行
bin/elasticsearch-certutil ca
## 直接回车默认是生成文件 elastic-stack-ca.p12
Please enter the desired output file [elastic-stack-ca.p12]: 
...
# 生成 elastic-stack-ca.p12后,执行命令elasticsearch-certutil
bin/elasticsearch-certutil cert --ca $ES_HOME/elastic-stack-ca.p12
...
# 直接回车生成elastic-certificates.p12文件
# 然后将生成的文件拷贝到各个节点的config下

elasticsearch.yml

主节点:
# 集群名称
cluster.name: "es_cluster"
# 节点名称 master1
node.name: master1
# 是否可以成为master节点
node.master: true
# 是否允许该节点存储数据,默认开启
node.data: true
# 网络绑定,这里我绑定 0.0.0.0,支持外网访问
network.host: ["0.0.0.0"]
# 设置对外服务的http端口,默认为9200
http.port: 9200
# 支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
# 集群发现的节点ip
discovery.seed_hosts: ["dc_es1","dc_es2","dc_es3"]
# 手动指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算
cluster.initial_master_nodes: ["dc_es1","dc_es2","dc_es3"]
# 数据仓储位置
path.data: /data/es/data
path.logs: /data/es/logs
# 备份数据存储路径
path.repo: ["/data/es/backup"]
# 用户权限配置,不止的用户的可以忽略,
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
# es 应用是不锁住jvm内存
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

如果你的集群是三个节点,需要高可用配置。那么其他两个节点的配置只需要修改下node.name,另外cluster.initial_master_nodes 允许为主节点的ip需要设置为单数,如果集群3个节点只配置了两个个initial_master_nodes,cluster.initial_master_nodes: ["dc_es1","dc_es2"],当主节点挂了就有用以下异常:

[2020-02-25T13:56:16,123][WARN ][o.e.c.c.ClusterFormationFailureHelper] [master2] master not discovered yet: have discovered [{master2
}{2GvgG6GvStmPR2Z68wkQeg}{9jC8kh0gQuidUAMOoegSGA}{dc_es3}{dc_es3:9300}{dil}{ml.machine_memory=33520295936, xpack.installed=tru
e, ml.max_open_jobs=20}]; discovery will continue using [dc_es1:9300, 10.10.141.79:9300] from hosts providers and [{master}{0
OkhhL3LQGejjq5WNnGIdA}{1t0Pahd1SGmEH-M6G5WwNA}{dc_es1}{dc_es1:9300}{dilm}{ml.machine_memory=33520295936, ml.max_open_jobs=20,
 xpack.installed=true}] from last-known cluster state; node term 8, last-accepted version 88 in term 8
[2020-02-25T13:56:24,610][WARN ][o.e.t.TcpTransport       ] [master2] exception caught on transport layer [Netty4TcpChannel{localAddr
ess=/dc_es3:9300, remoteAddress=/dc_es:47282}], closing connection
io.netty.handler.codec.DecoderException: java.io.StreamCorruptedException: SSL/TLS request received but SSL/TLS is not enabled on th
is node, got (16,3,3,1)

密码设置

任意节点下执行:bin/elasticsearch-setup-passwords interactive
会提示是否要设置6个账号密码[y/n],我们执行y,然后配置每个账号的密码就可以了。

验证

配置好后,我们可以通过Elasticsearch-head查看集群状态。
在这里插入图片描述
当然也可用命令随机查询一台节点。查看集群状态,主节点ip。如果没有用户–user可用省略

curl -XGET --user elastic:sZEXdEQr2I5iW6KxGxM2 'http://dc_es2:9200/_cat/nodes?v' 

master下带*号标记的就为主节点,可用看到目前是节点名为master1
在这里插入图片描述
此时关闭master1节点对应的es进程,如果配置正常集群仍然是可用的。同样发送curl命令。发现master2做为主节点了,集群能响应请求说明是高可用的。
在这里插入图片描述
然后我们再查看下具体的日志

[2020-02-25T18:32:03,942][INFO ][o.e.c.s.MasterService    ] [master2] node-left[{master1}{0OkhhL3LQGejjq5WNnGIdA}{Y0-fG9YVSIS7yh_yTwPpvg}{dc_es1}{dc_es1:9300}{dilm}{ml.machine_memory=33520295936, ml.max_open_jobs=20, xpack.installed=true} reason: disconnected], term: 15, version: 217, delta: removed {{master1}{0OkhhL3LQGejjq5WNnGIdA}{Y0-fG9YVSIS7yh_yTwPpvg}{dc_es1}{dc_es1:9300}{dilm}{ml.machine_memory=33520295936, ml.max_open_jobs=20, xpack.installed=true}}
[2020-02-25T18:32:03,976][INFO ][o.e.c.s.ClusterApplierService] [master2] removed {{master1}{0OkhhL3LQGejjq5WNnGIdA}{Y0-fG9YVSIS7yh_yTwPpvg}{dc_es1}{dc_es1:9300}{dilm}{ml.machine_memory=33520295936, ml.max_open_jobs=20, xpack.installed=true}}, term: 15, version: 217, reason: Publication{term=15, version=217}
[2020-02-25T18:32:03,990][INFO ][o.e.c.r.DelayedAllocationService] [master2] scheduling reroute for delayed shards in [59.9s] (5 delayed shards)
[2020-02-25T18:32:03,999][INFO ][o.e.i.s.IndexShard       ] [master2] [app_reg_idfa][0] primary-replica resync completed with 0 operations
[2020-02-25T18:32:04,000][INFO ][o.e.i.s.IndexShard       ] [master2] [.security-7][0] primary-replica resync completed with 0 operations
[2020-02-25T18:32:04,000][INFO ][o.e.i.s.IndexShard       ] [master2] [app_active_idfa][0] primary-replica resync completed with 0 operations
[2020-02-25T18:33:03,458][INFO ][o.e.c.s.MasterService    ] [master2] node-join[{master1}{0OkhhL3LQGejjq5WNnGIdA}{yJjSDIXPTZGsgK8XlH9vOg}{dc_es1}{dc_es1:9300}{dilm}{ml.machine_memory=33520295936, ml.max_open_jobs=20, xpack.installed=true} join existing leader], term: 15, version: 218, delta: added {{master1}{0OkhhL3LQGejjq5WNnGIdA}{yJjSDIXPTZGsgK8XlH9vOg}{dc_es1}{dc_es1:9300}{dilm}{ml.machine_memory=33520295936, ml.max_open_jobs=20, xpack.installed=true}}
[2020-02-25T18:33:03,805][INFO ][o.e.c.s.ClusterApplierService] [master2] added {{master1}{0OkhhL3LQGejjq5WNnGIdA}{yJjSDIXPTZGsgK8XlH9vOg}{dc_es1}{dc_es1:9300}{dilm}{ml.machine_memory=33520295936, ml.max_open_jobs=20, xpack.installed=true}}, term: 15, version: 218, reason: Publication{term=15, version=218}
[2020-02-25T18:33:04,676][INFO ][o.e.c.r.a.AllocationService] [master2] Cluster health status changed from [YELLOW] to [GREEN] (reason: [shards started [[app_reg_idfa][0]]])

可以看到master节点离开,原因是disconnected,master2将master1移除,然后同步副本小于预值的索引。
现在我们重新启动dc_es1上的master1,在执行curl命令。此时master1节点回来了,但是主节点仍然是替换后的master2。
在这里插入图片描述

客户端集群配置

restHighLevelClient

spring.elasticsearch.rest.uris=${ip1}:9200,${ip2}:${port}
spring.elasticsearch.rest.username=
spring.elasticsearch.rest.password=

jdbc

7.6.0版本,目前EsDataSource还没有多个url配置,需要的话可以考虑lvs。

参考

集群密码配置参考博客

Elasticsearch高可用集群部署方案:示例每日1万数据入库增长 在当今数据量快速增长的时代,构建高效、稳定且高可用的Elasticsearch集群至关重要。本文将详细介绍如何搭建一个能够满足每日1万条数据入库需求的ES集群,并实现高效的检索机制。 阅读详情

相关推荐

Elasticsearch集群部署详情

摘要: 本文详细介绍了在3台CentOS 7.9服务器上部署Elasticsearch集群的完整流程。内容包括:基础环境配置(主机名映射、SSH优化、防火墙/SELinux关闭、时间同步)、免密登录设置,以及两种ES安装方式(仓库安装和手动RPM包安装)。重点说明了主节点初始化、服务启动验证及自动生成密码的保存注意事项,同时提供了加入现有集群的备用命令。所有操作均需在3个节点执行,其中免密登录仅需在主节点配置。适用于需要快速搭建高可用ES集群的运维场景,强调安全性配置和操作验证步骤。

weixin_42728286的博客 2417

关于composer报错 提示 The openssl extension is required for SSL/TLS protection but is not available

今天使用composer的时候得到了这个错误: The openssl extension is required for SSL/TLS protection but is not available 搜了一圈,基本都是说开启php.ini里的配置: extension=openssl # 同时,执行 composer config -g --disable-tls true # 关闭Composer的TLS来修复 但是通过phpinfo函数查看openssl是开启状态,感觉莫名其妙。。。

托塔天王的博客 1149

【ES专题】ElasticSearch集群架构剖析_es集群(1)

使用何种通信协议去同步数据,互相通信采用何种策略同步数据(异步还是同步)如何保证一致性,保证到什么程度(【最终一致性】 or【实时一致性 / 强一致性】)使用何种算法去选举主次节点(感觉这个比较随意,通常为了快速恢复服务,选举流程是怎么快怎么来,但是不能出现【脑裂问题】)

2401_84159688的博客 1717

HTTPS SSL/TLS问题及解决方法汇总

之前处理过很多ThreadX平台及安卓平台上的SSL问题。 SSL问题几乎都和握手失败有关,大致分为四种: 1.客户端没有与服务器相匹配的加密套件,以及SSL版本不匹配。 2.SSL证书错误。 3.网络链路问题。 4.其他问题。 这时使用wireshark抓取网络报文就显得很重要了。 下面列出的是使用PC模拟以上问题情况的报文: 正常报文: PC端命令:openssl s_...

ahducheng的博客 6737

【ES专题】ElasticSearch集群架构剖析_es集群

诸如。

2401_84159688的博客 1541

基于Nacos与ES7的SkyWalking高可用集群实战配置详解

本文详细介绍了基于Nacos与ES7的SkyWalking高可用集群的实战配置,包括环境准备、架构设计、关键配置详解及动态配置技巧。通过Nacos实现服务发现和动态配置,结合ES7的多副本机制,确保监控数据零丢失和服务不间断。文章还提供了性能压测数据、安全防护措施及常见故障处理方案,帮助开发者快速搭建稳定可靠的分布式监控系统。

weixin_30415113的博客 572

java.io.StreamCorruptedException解决方案

序列化和反序列化的过程中,我们会用到ObjectOutputStream和ObjectInputStream ObjectOutputStream用于将对象系列化,它可以把一个对象用二进制的方式表示,可以把一个对象通过ObjectInputStream进行还原。这在网络环境下是非常有用的。可以把一个object通过二进制流在网络上进行传播。   通过代码说话吧: ObjectOutpu...

iteye_7202的博客 2390

Elasticsearch搜索引擎

本篇博客系统地介绍了Elasticsearch 7.14.0在windows环境下安装、基本使用、Springboot集成Elasticsearch以及ELK搭建。

weixin_44490884的博客 1675

由于对象流解析的数据与流的头部信息不匹配导致异常 java.io.StreamCorruptedException: invalid stream header: 7372001

对象,但服务器端使用了两个不同的对象输入流同时读取这个输出流,这导致两个输入流读取的顺序可能不同,从而导致异常。对象输出流序列化数据时,会把数据的数据格式(可以理解为数据存在的形式、在代码中的位置等等)写在流的对象头中,如果读取时的顺序与写入时的顺序不一致,或者在写入或读取对象头和对象内容之间更改了流的状态,则会出现。当使用对象流时,对象头和对象内容一起被写入输出流,而读取时也需要以相同的顺序读取对象头和对象内容。但是2号对象拿到的这张表格和1号对象拿到的是一样的,上面写了。而当1号对象输入流读取了。

Sunshine_QS的博客 3281

高可用elasticsearch集群搭建

Elasticsearch(简称为ES)是一个开源的分布式搜索和分析引擎,构建在Apache Lucene搜索引擎库之上。它提供了一个强大的全文搜索和实时分析功能,适用于大规模的数据存储、检索和分析。

lmj3732018的博客 1万+

CentOS7下Elasticsearch高可用集群方案-完整部署记录(个人珍藏版)

本篇文章详细记录了CentOS7下Elasticsearch高可用集群方案-完整部署过程,可作为线上长期的实操手册。特在此分享,希望能帮助到有用到的朋友。

java反序列化时,抛出java.io.StreamCorruptedException

问题描述:在使用java.io.ObjectInputStream类的readObject()方法去读取包含有序列化了多个(两个及两个以上)类的文件时,当读取到第二个类时,会抛出题目中提到的异常.   原因:任何一个文件都有文件头(header)和文件体(body),java在以追加的方式写一个文件时,他每次都会向文件追加一个header,该header是无法识别的,所以回抛出该异常 解决方案 ↓ 请参考:https://www.cnblogs.com/ouhaitao/p/7683514.html ..

无心 1380

Gazebo仿真UUV水下机器人:从环境搭建到避障算法实战

本文详细介绍了使用Gazebo仿真平台进行UUV水下机器人开发的全流程,涵盖从环境搭建、uuv_simulator配置、传感器集成到核心避障算法实战。通过搭建水下仿真实验室并实现基于激光雷达数据的反应式避障算法,为水下机器人算法验证与开发提供了高效、低成本的解决方案。

weixin_28840591的博客 263

Elasticsearch集群高可用:双Master问题(脑裂)彻底解决方案与实战排查

在 Elasticsearch 集群运行过程中,双 Master(脑裂)是最严重、最危险的故障之一。一旦出现双主节点,集群元数据会错乱、数据写入不一致、分片无法分配,最终导致整个集群不可用。很多生产环境的双 Master 问题,都是因为节点配置错误、网络分区、选举参数不合理导致的。本文将从双 Master 产生原因 → 识别方法 → 紧急恢复 → 永久解决 → 生产配置,完整讲解如何彻底杜绝和解决 ES 双 Master 问题。双 Master = 一个集群同时出现两个活跃的主节点。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 3736

海康工业相机排雷笔记02-像素格式解析

工业相机使用过程记录 02-像素格式解析 通过将相机输出图像裸数据raw格式直接存图查看 一、黑白/Mono 直接使用相机测试图像存图: 图像中各部分灰度分别为:0、36、73、109、146、182、219、255,以灰度73列为例 (1)Mono 8 该列图像数据为十六进制49,十进制为73,那么Mono 8就是每个像素点占8bit,依次排列。 (2)Mono 10 该列图像数据为十六进制2401,由于相机均为小端数据,实际数据应解析为0124,十进制为292=73*4,那么Mono 10格式为每

yonghuming_66的博客 8357

固定翼飞行器建模(一)——六自由度动力学

前两期文章讲完了气动力和气动力矩的模型,本期将来讲解一下六自由度部分的动力学与运动学方程。

2302_80148937的博客 1万+

CentOS7搭建elasticsearch集群

准备三个节点,系统版本为CentOS7.3。 11.0.10.18 es0111.0.10.19 es0211.0.10.20 es03 1、安装java环境 # yum install -y java java-1.8.0-openjdk-devel# vim /etc/profile.d/java.shexport JAVA_HOME=/usr# source /etc/profile....

yaodunlin的博客 1万+

Linux实战:rMATS可变剪切分析从零到一,避坑指南与结果深度解析

本文详细介绍了在Linux系统上从零开始部署rMATS进行可变剪切分析的完整流程,包括环境搭建、安装避坑指南、参数优化及结果解读。特别针对gfortran依赖、数学库配置等常见问题提供解决方案,并深入解析JC与JCEC结果的差异及可视化技巧,帮助生物信息学研究者高效完成可变剪切分析。

weixin_30394669的博客 409

Elasticsearch-Jest 配置ES集群&源码解读

文章目录Jest Github地址搭建源码环境遇到的问题 Jest Github地址 直接访问 https://github.com/searchbox-io/Jest ,把源码拉下来 搭建源码环境 我拉了个5.3.4的版本,最新版本为6.3.1 ,大同小异 test 这个module是我自己写的测试集群代码,GitHub上是没有这个的 . 遇到的问题 说下背景, 老项目 升级 , ...

小工匠 2万+

基于Python的SEC Edgar文件高效爬取:最新技术与实战指南

本文详细介绍了如何使用Python最新技术高效爬取SEC Edgar数据库中的金融文件。我们将探讨SEC Edgar系统的结构、合法爬取注意事项,并使用现代Python库如Requests-HTML、aiohttp和Playwright实现多种爬取方案。文章包含完整的代码示例、性能优化技巧以及数据处理方法,为金融数据分析师、研究人员和开发者提供全面指导。关键词:SEC Edgar、Python爬虫、金融数据、异步爬取、Playwright、XBRL解析。

2201_76125261的博客 633

Python爬虫实战:使用最新技术爬取GitHub Trending项目

本文将详细介绍如何使用Python最新技术栈构建一个高效的GitHub Trending爬虫。我们将使用异步请求库httpx、HTML解析库parsel、数据存储方案以及反反爬技术,完整实现一个能够稳定获取GitHub Trending数据的爬虫系统。文章包含5000余字详细教程,从环境搭建到代码实现,再到数据处理和存储,最后部署运行,提供全方位指导。GitHub Trending页面展示了GitHub上当前最受欢迎的项目,对于开发者了解技术趋势、发现优秀项目非常有价值。

2201_76125261的博客 738

ElasticSearch7.x高可用集群版搭建

1.前置准备 若之前未了解过ElasticSearch的安装,在安装集群版之前,建议先了解一下单机版创建。集群版无非就是拷贝了几套单机版的安装包,配置稍加改。 单机版安装详细教程以及安装过程容易遇到的问题 详见:ElasticSearch单机版安装 集群环境准备 IP 监听端口 主机名 系统 es实例名称 es版本 192.168.3.21 9201/9301 elastic CentOS 7 node-a 7.4.0 192.168.3.22 9201/9301 elastic Cen

程序员小强的博客 1万+

笔试题-2023-星宸-数字IC设计【纯净题目版】

4 笔试题-2023-星宸-数字IC设计【纯净题目版】

w0shishabi的博客 1172

Kubernetes(k8s)部署高可用多主多从的Redis集群

Kubernetes(k8s)上部署多主多从的高可用redis集群,使用NFS动态存储,步骤超详细

XiaoHH的博客 2284

GibbsCAM软件二次开发:GibbsCAM软件API接口详解

API(Application Programming Interface,应用程序编程接口)是一种允许不同软件之间进行通信的接口。在GibbsCAM软件中,API提供了与外部程序交互的能力,使得开发者可以利用GibbsCAM的强大功能进行二次开发,定制化满足特定的制造需求。GibbsCAM的API主要基于.NET框架,使用C#或VB.NET等语言进行编程。在GibbsCAM软件中,通过API接口创建自定义几何形状是实现复杂零件设计和加工策略定制的关键步骤。

kkchenjj的博客 1497

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Elasticsearch 多机集群配置

一.集群健康值 Elasticsearch 是有集群健康值的,红色,黄色,绿色 1)如果我们是单机单节点的Elasticsearch ,也就是说只有一个主节点的情况下,集群健康值是黄色的。也就是说只保存了一份数据。 2)如果此时我们新增一个节点,那么这个节点会默认成为主节点的副本节点,并同步对应数据。此时集群健康值是绿色的。即有2份数据可用。 3)如果一开始就有多个节点,一个主节点,多个字节点,此...

一掬净土 2968

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: 干货 | 携程机票数据仓库建设之路
下一篇: org.apache.flink.table.api.TableException: Only the first field can reference an atomic type.
yyoc97
博客等级 码龄12年 272粉丝 91原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值