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

news2024/12/23 22:13:06

本文是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.coloradmin.cn/o/1533008.html

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

相关文章

3个Tips,用“AI”开启新生活

相信最近,很多朋友们都回归到了忙碌的生活节奏中。生活模式的切换,或多或少会带来身体或情绪状况的起伏。新技术正在为人们生活的方方面面带来便利。3个小Tips或许能让你也从新技术中获益,从身到心,用“AI”开启新生活。 关”A…

【研究僧总结】回顾第1095个创作日

目录 前言一. 机缘二. 日常三. 展望 前言 感觉刚过1024不久,现在又来个1095创作日 一. 机缘 研究僧一直在找平台做笔记,方便之后的回顾总结,也让各位网友见证你我的成长,相互学习 止不住的写文止不住的成长,大家共同…

流畅的 Python 第二版(GPT 重译)(十二)

第五部分:元编程 第二十二章:动态属性和属性 属性的关键重要性在于,它们的存在使得将公共数据属性作为类的公共接口的一部分完全安全且确实可取。 Martelli、Ravenscroft 和 Holden,“为什么属性很重要” 在 Python 中&#xff0…

腾讯云优惠券怎么领?谁知道?分享一下

腾讯云代金券领取渠道有哪些?腾讯云官网可以领取、官方媒体账号可以领取代金券、完成任务可以领取代金券,大家也可以在腾讯云百科蹲守代金券,因为腾讯云代金券领取渠道比较分散,腾讯云百科txybk.com专注汇总优惠代金券领取页面&am…

Mysql——基础命令集合

目录 前期准备 先登录数据库 一、管理数据库 1.数据表结构解析 2.常用数据类型 3.适用所有类型的修饰符 4.使用数值型的修饰符 二、SQL语句 1.SQL语言分类 三、Mysql——Create,Show,Describe,Drop 1.创建数据库 2.查看数据库 3.切换数据库 4.创建数据表 5.查看…

Linux信号补充——信号发送和保存

三、信号的发送与保存 3.1信号的发送 ​ 必须有操作系统来保存信号,因为他是管理者; ​ 信号给进程的task_struct发送信号,在task_struct中维护了一个整数signal有0-31位,共32个bit位;对于信号的管理使用的是位图结…

阿里云2核4G服务器支持多少人在线?2C4G多少钱一年?

2核4G服务器支持多少人在线?阿里云服务器网账号下的2核4G服务器支持20人同时在线访问,然而应用不同、类型不同、程序效率不同实际并发数也不同,2核4G服务器的在线访问人数取决于多个变量因素。 阿里云2核4G服务器多少钱一年?2核4…

Python 深度学习第二版(GPT 重译)(三)

七、使用 Keras:深入探讨 本章涵盖 使用 Sequential 类、功能 API 和模型子类创建 Keras 模型 使用内置的 Keras 训练和评估循环 使用 Keras 回调函数自定义训练 使用 TensorBoard 监控训练和评估指标 从头开始编写训练和评估循环 您现在对 Keras 有了一些经…

水泊梁山108小坛酒之黑旋风 李逵

李逵是中国古典小说《水浒传》中的重要人物,李逵生的粗壮黝黑,绰号“黑旋风”。臂力过人,善使一双板斧,他也是一百零八将之一,梁山排座次时,位列第二十二位,是梁山第五位步军头领。

按面积筛选填充二值图中的孔洞-python源码

目录 🙋🙋需求 🍅🍅解决方案 🙋🙋需求 前提条件是二值图中0是背景,255是前景。 二值化后的影像中有很多小孔洞,现在需要按孔洞面积进行筛选,填充面积小于阈值的孔洞&…

华为综合案例-普通WLAN全覆盖配置(2)

组网图 结果验证 在AC_1和AC_2上执行display ap all命令,检查当前AP的状态,显示以下信息表示AP上线成功。[AC_1] display ap all Total AP information: nor : normal [1] ExtraInfo : Extra information P : insufficient power supply ---…

Unity 学习笔记 5.控制飞机飞行

目录 1.摄像机跟随的方法 2.鼠标按键响应 3.键盘按键响应 4.导入素材 5.让飞机向前飞 6.摄像机跟随飞机移动 7.鼠标控制飞机倾斜 8.键盘控制飞机飞行 下载源码 UnityPackage 1.摄像机跟随的方法 2.鼠标按键响应 3.键盘按键响应 4.导入素材 下载素材 步骤: 将…

C语言中的联合和枚举(未完)

1、联合体 联合体类型的声明 像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。但是编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫:共⽤体。因为所有变量公用…

流畅的 Python 第二版(GPT 重译)(七)

第十三章:接口、协议和 ABCs 针对接口编程,而不是实现。 Gamma、Helm、Johnson、Vlissides,《面向对象设计的第一原则》 面向对象编程关乎接口。在 Python 中理解类型的最佳方法是了解它提供的方法——即其接口——如 “类型由支持的操作定义…

【RPG Maker MV 仿新仙剑 战斗场景UI (五)】

RPG Maker MV 仿新仙剑 战斗场景UI 五 战斗状态菜单原始RMMV 菜单窗口仿新仙剑代码仿新仙剑战斗状态菜单 战斗状态菜单 这部分比较简单,由于有主菜单的状态菜单打底所以开发上也容易些。 原始RMMV 菜单窗口 在原版的RMMV中显示的数据主要是人物的HP、MP、TP、和两…

鲁棒的基于表面势的GaN HEMT集成电路紧凑模型

来源:Robust Surface-Potential-Based Compact Model forGaN HEMT IC Design(TED 13年) 摘要 我们提出了一种精确且稳健的基于表面势的紧凑模型,用于模拟采用氮化镓高电子迁移率晶体管(GaN HEMT)设计的电…

JAVA实战开源项目:大学计算机课程管理平台(Vue+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 实验课程档案模块2.2 实验资源模块2.3 学生实验模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 实验课程档案表3.2.2 实验资源表3.2.3 学生实验表 四、系统展示五、核心代码5.1 一键生成实验5.2 提交实验5.3 批阅实…

【算法】雪花算法生成分布式 ID

SueWakeup 个人中心:SueWakeup 系列专栏:学习Java框架 个性签名:人生乏味啊,我欲令之光怪陆离 本文封面由 凯楠📷 友情赞助播出! 目录 1. 什么是分布式 ID 2. 分布式 ID 基本要求 3. 数据库主键自增 4. UUID 5. S…

PyTorch 深度学习(GPT 重译)(四)

第二部分:从现实世界的图像中学习:肺癌的早期检测 第 2 部分的结构与第 1 部分不同;它几乎是一本书中的一本书。我们将以几章的篇幅深入探讨一个单一用例,从第 1 部分学到的基本构建模块开始,构建一个比我们迄今为止看…

【Python + Django】ORM 数据库操作

前言: 虽然我们知道了用MySQL数据库 pymysql可以进行数据库的连接, 但这样的方式太繁琐了。 本文介绍一下Django为我们提供的更简单便捷的数据库连接方式:ORM框架。 ORM为我们翻译代码,使得我们的代码更加简洁易懂。 1 连接…