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

Elasticsearch集群Yellow亚健康状态修复

Elasticsearch集群Yellow亚健康状态修复

  • 问题背景
  • 排查流程
  • 解决办法

问题背景

Elasticsearch集群健康状态为Yellow,涉及到多个索引。

排查流程

在浏览器打开Kibana Console进行问题排查,console地址为:

http://{Kibana_IP}:5601/app/dev_tools#/console

在console运行以下API命令来获取基本信息:

GET _cat/health?v
GET _cat/master?v
GET _cat/nodes?v
GET _cat/indices?vGET _cat/shards?v
# 输出中各列分别为:
# shard:分片名称;prirep:主分片或副本,
# state:分片状态,可以为 INITIALIZING | RELOCATING | STARTED | UNASSIGNED
# docs:分片中文档的数量;store:分片占用的磁盘空间GET _cat/allocation?v
# 获取分配到每个节点的分片数量以及所占用的磁盘空间

获取健康状态为Yellow的索引信息:

GET _cat/indices?v&health=yellow

输出中包含的列有health、status(索引状态)、index(索引名称)、uuid、pri(主分片数量)、rep(副本数量)、docs.count、docs.deleted、store.size、pro.store.size。

从上面拿到的异常状态索引中,任选一个(假设为ftimes_infra_migrad_2022-09)继续查看该索引的分片信息:

GET _cat/shards/ftimes_infra_migrad_2022-09?v

输出的列中包含index、shard(分片名称)、prirep(primary还是replica)、state、docs、store(分片大小)、ip、node(分片所在节点)。

观察目标索引的各个分片的分配情况。Yellow健康状态下一般这里可以看到有replica分片没有被正确分配,即prirep=r的行记录,对应的分片状态为state=UNASSIGNED

假设未被正确分配的replica分片名称为0,检查该分片分配失败的原因:

GET _cluster/allocation/explain
{"index": "ftimes_infra_migrad_2022-09","shard": 0,"primary": false
}

检查输出中的explanation部分:

...
"explanation": "shard has exceeded the maximum number of retries [5] on failed
allocation attempts - manually call [/_cluster/reroute?retry_failed=true] to retry,
..."

解决办法

下面我们尝试手动分配该replica分片。需要确保replica分片要分配的节点上有足够的磁盘空间,并且同一索引的primary分片和replica分片不在同一节点上。

# 查看分片的大小、主分片所在节点
GET _cat/shards/ftimes_infra_migrad_2022-09?v# 查看各节点的磁盘空间使用情况
GET _cat/allocation?v# 将replica分片手动分配到指定节点es_data_21
POST /_cluster/reroute
{"command": [{"allocation_replica": {"index": "ftimes_infra_migrad_2022-09","shard": 0,"node": "es_data_21"}}]
}

执行后收到下面的报错:

...
"type": "illegal_argument_exception",
"reason": "[allocation_replica] allocation of [ftimes_infra_migrad_2022-09][0] on
node {es_data_21}{...}{...} is not allowed, reason: [NO(shard has exceeded the 
maximum number of retries [5] on failed allocation attempts - manually call 
[/_cluster/reroute?retry_failed=true] to retry, ... )]"

根据错误提示执行以下命令:

POST /_cluster/reroute?retry_failed=true

ES集群就会自动重新分配之前分配出错的replica副本。

过一小段时间后,检查所有索引健康状态:

GET _cat/indices?v&health=yellow

🐟MORE …

在Kibana的console API命令中,可以使用s来对检索结果按指定的列排序,并使用通配符*来匹配任意字符串。

# 获取集群中所有索引信息,并按index列排序
GET _cat/indices?v&s=index# 获取集群中名称以ftimes开头的所有索引信息,并按index列排序
GET _cat/indices/ftimes*?v&s=index# 获取集群中名称以gzone开头的索引的所有分片信息
GET _cat/shards/gzone*

相关文章:

Elasticsearch集群Yellow亚健康状态修复

Elasticsearch集群Yellow亚健康状态修复问题背景排查流程解决办法问题背景 Elasticsearch集群健康状态为Yellow,涉及到多个索引。 排查流程 在浏览器打开Kibana Console进行问题排查,console地址为: http://{Kibana_IP}:5601/app/dev_too…...

第52讲:SQL优化之UPDATE更新操作的优化

文章目录 1.UPDATE更新语句的优化2.UPDATE更新语句优化案例1.UPDATE更新语句的优化 我们在使用UPDATE更新语句更改表中数据时,可能会导致表中产生行级锁或者是表级锁。 UPDATE语句的优化就是为了避免表中出现表级锁,从而影响并发的性能。 当UPDATE语句更新表数据时,WHERE…...

logback 自定义日志输出到数据库

项目日志格式 Spring Boot 的默认日志输出类似于以下示例: 2021-12-14 22:40:14.159 INFO 20132 --- [ main] com.kuangstudy.SpringbootApplication : Started SpringbootApplication in 2.466 seconds (JVM running for 3.617)输出以下项目&…...

< elementUi 组件插件: el-table表格拖拽修改列宽及行高 及 使用注意事项 >

elementUi 组件插件: el-table拖拽修改列宽及行高 及 使用注意事项👉 资源Js包下载及说明👉 使用教程> 实现原理> 局部引入> 全局引入 (在main.js中)👉 注意事项往期内容 💨&#x1f4…...

微信小程序的分享朋友圈

分享朋友圈官方API:分享到朋友圈 1、分享到朋友圈接口设置事项: 2、onShareTimeline()注意事项: 3、分享朋友圈后,测试发现,没有数据请求。 用户在朋友圈打开分享的小程序页面,并不会真正打开小程序&…...

华为OD机试真题Python实现【 寻找路径】真题+解题思路+代码(20222023)

寻找路径 题目 二叉树也可以用数组来存储,给定一个数组,树的根节点的值储存在下标 1, 对于储存在下标 n 的节点,他的左子节点和右子节点分别储存在下标 2*n 和 2*n+1, 并且我们用 -1 代表一个节点为空。 给定一个数组存储的二叉树,试求从根节点到最小的叶子节点的路径,…...

九头蛇hydra爆破http示例

使用hydra执行http表单暴力破解 通过浏览器自带分析得知: 提交地址:http://10.0.0.115/student_attendance/ajax.php?action=login 提交方式:POST 提交数据:username=a&password=a 服务响应:3 根据以上收集的信息就可以使用hydra进行密码爆破 hydra 10.0.0.115 http…...

jQuery基本使用

获取和设置元素内容学习目标能够知道获取和设置元素内容的操作1. html方法的使用jquery中的html方法可以获取和设置标签的html内容示例代码:<script>$(function(){var $div $("#div1");// 获取标签的html内容var result $div.html();alert(result);// 设置…...

互联网企业如何进行数字化转型?业务需求迭代频繁的应对之策!

互联网行业作为我国数字经济发展“四化”框架中生产力主要组成部分&#xff0c;是国家数字化转型的主要推动者之一。为此&#xff0c;相对于其他传统行业来说&#xff0c;互联网行业企业数字化转型的紧迫程度更高&#xff0c;如果不数字化转型或者转型不成功&#xff0c;会有更…...

前端学习日记——Vue之Vuex初识(一)

前言 学习前端一段时间了&#xff0c;因为一直是做Python开发&#xff0c;所以凭借着语言的通性学习Javascript、Vue轻快很多&#xff0c;但一些碎片化的知识及插件的使用方法还是需要记录一下&#xff0c;时而复习&#xff0c;形成系统化的知识体系&#xff08;PS&#xff1a;…...

【C++】Windows动态库【.DLL文件】制作方法总结

如题&#xff0c;我们本篇介绍如何制作DLL&#xff0c;将代码类中的方法以接口的形式暴露出来给exe程序使用。会涉及类厂创建方法实例、声明DLL接口、.def文件的使用等。 目录 一、DLL介绍 二、C制作DLL文件 2.1 DLL端 2.2 调用端 三、DLL导出类方法 四、COM技术制作DLL…...

C 语言编程 — HelloWorld

目录 文章目录目录安装 Linux GCC 编译器YUM 安装发行版本编译安装指定版本HelloWorld基本语法编码运行安装 Linux GCC 编译器 YUM 安装发行版本 $ yum install gcc vim -y$ gcc --version gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) Copyright © 2015 Free Software…...

蓝桥杯入门即劝退(二十一)三数之和(梦破碎的地方)

欢迎关注点赞评论&#xff0c;共同学习&#xff0c;共同进步&#xff01;------持续更新蓝桥杯入门系列算法实例--------如果你也喜欢Java和算法&#xff0c;欢迎订阅专栏共同学习交流&#xff01;你的点赞、关注、评论、是我创作的动力&#xff01;-------希望我的文章对你有所…...

element 下拉框支持搜索并输入

前言 下拉框对于开发来说再常见不过了&#xff0c;也是界面设计中的常用组件&#xff0c;在部分使用场景下&#xff0c;我们需要做到下拉框可以选择的同时&#xff0c;支持搜素和输入&#xff0c;以 element 的下拉框组件为例&#xff0c;当我们同时设置属性让其支持搜素和输入…...

JVM详解——垃圾回收

如果有兴趣了解更多相关内容的话&#xff0c;可以看看我的个人网站&#xff1a;耶瞳空间 GC&#xff1a;垃圾收集(Gabage Collection)&#xff0c;内存处理是编程人员容易出现问题的地方&#xff0c;忘记或者错误的内存。不当的回收可能会导致程序或系统的不稳定甚至崩溃&…...

spring之集成Mybatis

文章目录一、实现步骤1、准备数据库表2、在IDEA中创建一个模块&#xff0c;并引入依赖3、基于三层架构实现4、编写pojo5、编写mapper接口6、编写mapper配置文件7、编写service接口和service接口的实现类8、编写jdbc.properties配置文件9、编写mybatis-config.xml配置文件10、编…...

【面试宝典】准备面试了~集合

1、ArrayList和linkedList的区别 它们都是继承自 Collection。 ArrayList 是基于数组的&#xff0c;在使用查询的时候效率比较高&#xff0c;但删除效率却非常低&#xff0c;因为它需要重新排数组中的所有数据。 LinkList底层是一个双链表&#xff0c;在添加和删除元素时更好…...

华为OD机试真题Python实现【GPU 调度】真题+解题思路+代码(20222023)

GPU 调度 题目 为了充分发挥 GPU 算力, 需要尽可能多的将任务交给 GPU 执行, 现在有一个任务数组, 数组元素表示在这1s内新增的任务个数, 且每秒都有新增任务, 假设 GPU 最多一次执行n个任务, 一次执行耗时1s, 在保证 GPU 不空闲的情况下,最少需要多长时间执行完成。…...

gcc编译C源程序

一、安装 在Linux下&#xff0c;一般使用gcc或arm-linux-gcc交叉编译器来编译程序。在Ubuntu环境下&#xff0c;我们可以使用以下apt-get命令来安装这些编译程序。 apt-get install gcc apt-get install gcc-arm-linux-gnueabi 安装完毕后&#xff0c;使用以下命令查看编译器…...

Tina_Linux_各平台多媒体格式_支持列表_new

Tina Linux 各平台多媒体格式支持列表 1 概述 1.1 编写目的 本文档将介绍Allwinner Tina Linux 系统各个芯片平台支持的多媒体格式&#xff0c;旨在帮助软件开发工程师、技术支持工程师查找各芯片平台支持哪些多媒体格式。 1.2 适用范围 Tina Linux v3.5 及以上版本。 1.…...

Burp Suite企业级部署:从单机工具到安全团队基础设施

1. 为什么企业级Burp Suite部署不是“装个软件就完事”&#xff1f;很多人第一次接触Burp Suite&#xff0c;是在渗透测试入门课上——下载社区版、双击安装、抓个百度登录包&#xff0c;三分钟上手。但当我接手某金融客户内部红队平台建设时&#xff0c;发现他们把Burp当Chrom…...

GCN vs MLP:在Cora数据集上,图神经网络到底强在哪?(附可视化对比)

GCN与MLP在Cora数据集上的本质差异&#xff1a;从特征聚合到空间重构的认知升级当我们面对学术文献分类任务时&#xff0c;传统机器学习方法往往将每篇文献视为独立个体进行处理。这种处理方式在Cora数据集上通常只能获得约50%的分类准确率&#xff0c;而图卷积网络(GCN)却能轻…...

Fiddler HTTPS抓包失败原因与证书信任机制详解

1. 为什么HTTPS抓包总在“证书这关”卡死&#xff1f;——不是Fiddler不行&#xff0c;是系统和APP联手设防Fiddler HTTPS抓包避坑指南&#xff1a;从证书安装失败到APP抓包不全的完整解决方案——这个标题里藏着太多人反复踩坑却始终没想通的真相。我带过三届移动测试团队&…...

不只是驱动问题:深度排查Windows CMD中nvidia-smi失效的5种可能及解决方案

不只是驱动问题&#xff1a;深度排查Windows CMD中nvidia-smi失效的5种可能及解决方案当你在Windows CMD中键入nvidia-smi命令却只得到"不是内部或外部命令"的提示时&#xff0c;多数教程会告诉你"配置环境变量Path即可解决"。但现实往往更复杂——特别是当…...

棋牌类网站渗透测试五大高危漏洞实战解析

1. 为什么棋牌类网站总在渗透测试中“反复栽跟头”做渗透测试这十多年&#xff0c;我经手过上百个在线游戏类系统&#xff0c;其中棋牌类网站的漏洞复现率之高、利用链之典型、业务逻辑之“反直觉”&#xff0c;在所有垂直领域里排得上前三。不是它们代码写得最差&#xff0c;而…...

Chat2DB AI SQL技术解析:智能数据查询效率提升300%的架构实现

Chat2DB AI SQL技术解析&#xff1a;智能数据查询效率提升300%的架构实现 【免费下载链接】Chat2DB AI-driven database tool and SQL client, The hottest GUI client, supporting MySQL, Oracle, PostgreSQL, DB2, SQL Server, DB2, SQLite, H2, ClickHouse, and more. 项目…...

安全合规:满足行业安全标准和法规要求

安全合规&#xff1a;满足行业安全标准和法规要求 一、安全合规概述 1.1 安全合规的定义 安全合规是指企业在信息安全方面遵守相关法规、标准和行业规范的过程。它涉及数据保护、隐私安全、访问控制等多个方面&#xff0c;确保企业信息系统的安全性和合规性。 1.2 安全合规的价…...

2026保姆级免费在线去水印教程:想保存无水印视频?用这些方法就够了

你是不是也遇到过这样的尴尬&#xff1a;刷到一个特别喜欢的视频想保存下来做素材&#xff0c;结果画面中间杵着大大的水印&#xff1b;或者朋友发来一张好图&#xff0c;角落的Logo怎么都去不掉&#xff1f;自己研究半天&#xff0c;又是下软件又是找教程&#xff0c;结果要么…...

3分钟搞定视频字幕:VideoSrt自动生成工具全解析

3分钟搞定视频字幕&#xff1a;VideoSrt自动生成工具全解析 【免费下载链接】video-srt-windows 这是一个可以识别视频语音自动生成字幕SRT文件的开源 Windows-GUI 软件工具。 项目地址: https://gitcode.com/gh_mirrors/vi/video-srt-windows 还在为视频字幕制作而头疼…...

Pikachu暴力破解实战:Burp Suite爆破思维训练全解析

1. 这不是“练手”&#xff0c;是真实世界暴力破解的完整沙盘推演很多人第一次点开Pikachu漏洞练习平台的“暴力破解”模块时&#xff0c;下意识觉得&#xff1a;“不就是写个脚本跑密码字典嘛&#xff1f;Python requests for循环&#xff0c;十分钟搞定。”我当年也是这么想…...