ES的集群节点发现故障排除指南(1)

本文是ES官方文档关于集群节点发现与互联互通的问题排查指南内容。
在这里插入图片描述

英文原文(官网)

集群节点发现是首要任务

集群互连,重中之重!

在大多数情况下,发现和选举过程会迅速完成,并且主节点会长时间保持当选状态。

如果集群没有稳定的主节点,其许多功能将无法正常工作,并且Elasticsearch将会向客户端报告错误并在日志中记录。必须先修复主节点的不稳定问题,才能解决其他相关问题。在没有选出主节点或当前选出的主节点不稳定的情况下,解决任何其他问题都是不可能的。

如果集群有一个稳定的主节点,但部分节点无法发现或加入该主节点,那么这些节点将会向客户端报告错误并在它们的日志中记录。必须首先解决阻碍这些节点加入集群的问题,然后才能着手处理其他问题。在这些节点无法成功加入集群的情况下,解决它们所报告的任何其他问题是不可能的。

收集日志

如果集群在几秒钟以上的时间内没有选出主节点,或者主节点不稳定,又或者部分节点无法发现或加入一个稳定的主节点,Elasticsearch将在其日志中记录相关信息来解释原因。若问题持续超过几分钟,Elasticsearch会在日志中记录更多详细信息。为了正确排查发现与选举问题,请从所有节点收集并分析至少涵盖五分钟的日志数据。

在这里插入图片描述

没有master被选中

当一个节点赢得主节点选举时,它会在日志中记录一条包含“elected-as-master”信息的消息,并且所有节点都会记录一条包含“master node changed”的消息,指出新当选的主节点。

如果没有选出主节点,且没有任何节点能够赢得选举,则所有节点将使用名为“org.elasticsearch.cluster.coordination.ClusterFormationFailureHelper”的日志器每隔10秒(默认间隔)重复记录关于此问题的消息。

主节点选举只涉及主节点候选节点,在这种情况下,应重点关注这些主节点候选节点。这些节点的日志将显示主节点选举的要求,例如发现特定数量的节点。在这些节点上的健康API也将提供有关当前状况的有用信息。

如果日志或健康报告表明Elasticsearch无法发现足够多的节点以形成法定人数(quorum),则必须解决阻止Elasticsearch发现缺失节点的原因。缺失的节点对于重建集群元数据是必需的。没有集群元数据,集群中的数据将失去意义。集群元数据存储在集群中一部分主节点候选节点上。如果无法发现法定人数,那么缺失的节点就是持有集群元数据的节点。

确保运行的节点数量足以形成法定人数(quorum),并且网络中任意两个节点之间都能相互通信。若选举问题持续超过几分钟,Elasticsearch会报告更多关于网络连接性的详细信息。如果无法启动足够节点来形成法定人数,建议启动一个新的集群并从最近的快照恢复数据。有关更多信息,请参阅基于法定人数的决策制定。

如果日志或健康报告显示Elasticsearch已经发现可能构成法定人数的节点集合,那么通常导致集群无法选举出主节点的原因在于其他某个节点无法发现法定人数。请检查其他主节点候选节点上的日志,并确保它们都已经成功发现足够节点以形成法定人数。

排查步骤

如果日志表明由于超时或网络相关问题导致发现或主节点选举失败,则按以下步骤缩小问题范围。

  • 垃圾回收暂停会被Elasticsearch默认输出的GC日志记录下来,同时通常也会被主节点日志中的JvmMonitorService记录。利用这些日志确认节点是否存在高堆内存使用率以及长时间的GC暂停现象。如果存在这种情况,对于高堆内存使用的故障排查指南提供了一些进一步调查的建议,但通常您需要在堆内存使用高峰期间捕获堆转储,以便全面理解问题所在。

  • 虚拟机暂停同样会影响同一主机上的其他进程。虚拟机暂停通常还会导致系统时钟出现不连续性,这一情况会在Elasticsearch日志中被报告出来。如果您发现有其他进程在同一时间暂停,或者观察到意外的时钟不连续性,那么请对运行Elasticsearch的基础架构进行深入调查。

  • 抓包操作可以揭示系统级和网络级故障,特别是在所有相关节点同时捕获网络流量的情况下。这样应该能观察到节点间连接中的任何重传、丢包或其他延迟现象。

  • 通过获取Elasticsearch主进程(例如,使用jstack工具)在相关日志消息前几秒钟内的堆栈转储,或使用Java Flight Recorder等工具生成的分析跟踪,可以识别特定线程长时间等待的问题。

  • 节点热线程API有时会提供有用的信息,但请注意,该API同时也要求集群中所有节点拥有一系列transport_workergeneric线程。因此,该API可能会受到您正试图诊断问题的影响。相比之下,jstack更为可靠,因为它不需要依赖JVM线程。

  • 参与发现和集群成员资格管理的线程主要是transport_worker线程和cluster_coordination线程,这两类线程不应出现长时间等待的情况。在Elasticsearch日志中,尤其是来自org.elasticsearch.transport.InboundHandler的警告日志中,也可能会发现与线程长时间等待相关的证据。有关更多信息,请参阅网络线程模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/769469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统安装完成之后如何开启root的ssh登录

Linux系统安装完成之后如何开启root的ssh登录 默认情况下,root用户是没有密码的,而且出于安全考虑,SSH服务不允许root用户直接登录。但在某些情况下,你可能需要以root用户身份通过SSH远程登录服务器,或者为root用户设…

mysql基础4sql优化

SQL优化 插入数据优化 如果我们需要一次性往数据库表中插入多条记录,可以从以下三个方面进行优化。 insert into tb_test values(1,tom); insert into tb_test values(2,cat); insert into tb_test values(3,jerry);-- 优化方案一:批量插入数据 Inser…

生骨肉冻干真的对猫身体好吗?排行榜靠前对猫身体好的生骨肉冻干推荐

随着科学养猫知识的广泛传播,生骨肉冻干喂养正逐渐受到养猫人士的青睐。生骨肉冻干真的对猫身体好吗?生骨肉冻干不仅符合猫咪的饮食天性,还能提供全面均衡的营养,有助于维护猫咪的口腔和消化系统健康。然而,许多猫主人…

Open CASCADE学习|最小二乘法拟合直线

最小二乘法,又称最小平方法,起源于十八世纪的大航海探索时期,发展于天文领域和航海领域。其历史可以追溯到法国科学家马里勒让德于1805年首次提出这一概念,而1809年,高斯在他的著作《天体运动论》中也提出了最小二乘法…

JavaScript中三目运算

三目运算符是JavaScript中常用的一种条件语句,也称为条件运算符。它由问号(?)和冒号(:)组成,用于根据条件的真假返回不同的值。在本篇文章中,我将详细介绍三目运算符的语法、用法和实例&#x…

自学新标日第八课 未完结

第八课 单词 因为总是电脑打字 手写不会 以后单词都先自己手写了 晚更!! 单词假名声调词义プレゼント2礼物チケット1门票パンフレット1小册子記念品きねんひん0纪念品スケジュールひょうすけじゅーるひょう&#xf…

xilinx FPGA 除法器ip核(divider)的学习和仿真(Vivado)

在设计中,经常出现除法运算,实现方法: 1、移位操作 2、取模取余 3、调用除法器IP核 4、查找表 简单学习除法器IP。 网上很多IP翻译文档,不详细介绍,记录几个重要的点: 1、三种算法模式(不同模式所消耗的资…

【Linux 进程概念】

【Linux 进程概念】 冯诺依曼体系结构冯诺依曼结构简要解释:你用QQ和朋友聊天时数据的流动过程 操作系统(OperatorSystem)概念设计OS的目的定位操作系统的上下层都分别是什么如何理解“管理"总结 进程基本概念描述进程-PCBtask_ struct内容 组织进程查看进程通…

大模型围剿战:Kimi如何在免费与盈利之间找到平衡?

文 | 大力财经 在近期的互联网科技领域,一款名为Kimi的国产大型AI模型引起了广泛关注。随着Kimi的火爆,国内的大型科技公司纷纷开始关注并投入到长文本处理技术的竞争中。 阿里巴巴、360等知名企业纷纷宣布了他们的长文本处理能力,分别达到…

网络——套接字编程UDP

目录 端口号 源端口号和目的端口号 认识TCP协议和UDP协议 网络字节序 socket编程接口 socket常见接口 sockaddr结构 UDP socket bind recvfrom sendto 编写客户端 绑定INADDR_ANY 实现聊天功能 端口号 在这之前我们已经说过源IP地址和目的IP地址,还有…

微信小程序的页面制作---常用组件及其属性2

一、标签栏taBar 在全局配置文件app.json中添加taBar配置,可实现标签栏配置。标签栏最少2个,最多5个 (1)如何配置标签栏? 1》先建多个文件,(以我的index,list,myform文…

最近很火的游戏,人渣/SCUM(更新V0.9.517.81845)

包含DLC • SCUM Deluxe • SCUM Deluxe 2 • SCUM Danny Trejo • SCUM Hair Deluxe 1 • SCUM Luis Moncada • SCUM Charms 1 • SCUM Weapon Skins 1 中文设置 OPTIONS-LANGUAGE-中文(简体) 特别提示 • 通过“\SCUM\Binaries\Win64\SCUM.exe”启动游戏 • 如果…

Microsoft Excel 快捷键 (keyboard shortcut - hotkey)

Microsoft Excel 快捷键 [keyboard shortcut - hotkey] References 表格内部换行快捷键 Alt Enter 快速将光标移到表末 Ctrl End 快速将光标移到表首 Ctrl Home References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

人工智能(Educoder)-- 搜索技术 -- 盲目式搜索

第1关:盲目搜索之宽度优先搜索算法 任务描述 本关任务:给定迷宫地图以及在迷宫中的起始位置,利用宽度优先搜索算法求解走出迷宫的最短路径长度,走出迷宫意味着达到迷宫地图的边界(所有位置下标0开始)。 …

Dockerfile, nginx.conf文件解读

Dockerfile文件 FROM registry.tongdun.me/library/alpine3-nginx:1.0 ENV APPNAMEedith-frontendADD nginx.conf /etc/nginx/ ADD ok.htm /home/admin/ RUN mkdir /home/admin/dist COPY /dist/ /home/admin/dist/ RUN mkdir /home/admin/nginx RUN mkdir /home/admin/nginx/…

水电站泄洪预警广播系统方案

一、行业背景 近年来由于危险河道管理措施不到位,调峰电站泄水风险长期存在,信息通报制度缺失以及民众安全警觉性不高等因素导致的水电站在泄洪时冲走下游河道游客以及人民财产的事故频发。 我司通过物联网、云计算、大数据、人工智能等技术手段&#x…

【电脑装机】笔记本开机启动快捷键汇总

联想 Lenovo 和 ThinkPad 笔记本: 启动项界面快捷键:F12 或者 F2 进 BIOS 快捷键:F2 或者 FnF2 戴尔 Dell 笔记本: 启动项界面快捷键:F12 进 BIOS 快捷键:F2 或者 FnF2 惠普 HP 笔记本: 启…

不能从所选图层建立3d模型--模大狮模型网

在Revit中,从所选图层直接创建3D模型并不是一个常规的操作方式。通常情况下,你需要手动创建文字或者图形,然后将其转换为3D模型。 如果你有一个平面上的文字或图形,想要将其转换为3D模型,你可以使用以下步骤&#xff1…

什么是虚拟线程?

1、典型回答 Java 中的虚拟线程,也叫做协程或“轻量级线程”,它诞生于JDK 19(预览 API),正式发布于 JDK 21,它是一种在 Java 虚拟机(JVM)层面实现的逻辑线程,不直接和操作系统的物理线程一一对应,因此它可…

文献速递:基于SAM的医学图像分割---SAM-Med2D

Title 题目 SAM-Med2D 01 文献速递介绍 医学图像分割在通过识别和勾画各种组织、器官或感兴趣区域来分析医学图像中发挥着至关重要的作用。准确的分割可以帮助医生精确识别和定位病理区域,从而实现更准确的诊断和治疗。此外,对医学图像进行定量和定性…