注: 部分概念介绍来源于网络

一、ElasticSearch集群的三种状态:
Green - 所有数据都可用,主副分片都已经分配好
Yellow - 所有数据都可用,但尚未分配一些副本,不影响查询,可能影响恢复。如果集群中的某个节点发生故障,则在修复该节点之前,某些数据可能不可用。
Red - 某些数据由于某种原因 存在主分片未分配,对查询会有影响

二、查询索引Yellow状态原因
1、查看集群的健康并显示索引状态

GET /_cluster/health?level=indices
{"cluster_name" : "elasticsearch-1","status" : "green","timed_out" : false,"number_of_nodes" : 3,"number_of_data_nodes" : 3,#活动主分区数量"active_primary_shards" : 28,#活动主分区和副本分区的总数"active_shards" : 55,#正在重定位的分片数量"relocating_shards" : 0,#正在初始化的分片数量"initializing_shards" : 0,#未分配的分片数"unassigned_shards" : 3,#其分配因超时设置而延迟的分片数"delayed_unassigned_shards" : 0,#尚未执行的集群级别更改的数量"number_of_pending_tasks" : 0,#为完成的访问数量"number_of_in_flight_fetch" : 0,#自最早的初始化任务等待执行以来的时间(以毫秒为单位)"task_max_waiting_in_queue_millis" : 0,#集群中活动碎片的比率,以百分比表示"active_shards_percent_as_number" : 100.0,"indices" : {"elasticsearch-1" : {"status" : "green","number_of_shards" : 3,"number_of_replicas" : 3,"active_primary_shards" : 5,"active_shards" : 10,"relocating_shards" : 0,"initializing_shards" : 0,"unassigned_shards" : 3}}
}

2、查看集群中每个节点的分片分配情况

GET /_cat/allocation?v
shards disk.indices disk.used disk.avail disk.total disk.percent host      ip        node19       86.7kb    36.9gb     95.2gb    132.2gb           27 127.0.0.1 127.0.0.1 master18       73.1kb    36.9gb     95.2gb    132.2gb           27 127.0.0.1 127.0.0.1 node-00318       67.8kb    36.9gb     95.2gb    132.2gb           27 127.0.0.1 127.0.0.1 node-0023                                                                               UNASSIGNED
#unassigned_shards=3,确定是副本分片未分配,导致集群状态Yellow

3、查看unassigned的原因

GET /_cluster/allocation/explain?pretty
{"index" : "elasticsearch-1","shard" : 3,"primary" : false,"current_state" : "unassigned","unassigned_info" : {"reason" : "CLUSTER_RECOVERED","at" : "2022-04-20T11:01:43.051Z","last_allocation_status" : "no_attempt"},"can_allocate" : "no",#异常原因"allocate_explanation" : "cannot allocate because allocation is not permitted to any of the nodes","node_allocation_decisions" : [{"node_id" : "NfmBH4nSSpGmtf7aPNuvXQ","node_name" : "master","transport_address" : "127.0.0.1:9300","node_decision" : "no","deciders" : [{"decider" : "same_shard","decision" : "NO","explanation" : "the same cannot be allocate to the same node no which a copy of the shard already exists "}]}]
}

查看每个节点原因说有同样的数据,不能分配。
4、查看所有的分片

GET _cat/shards?h=index,shard,prirep,state,unassigned.reason

5、修改索引副本数

PUT /elasticsearch-1/_settings
{"number_of_replicas": 2
}

6、更改完后查询

GET /_cluster/health?level=indices"unassigned_shards" : 0

三、总结(Red、Yellow)
遇到集群Red、Yellow时,我们可以从如下方法排查 :

集群层面:curl -s 172.31.30.28:9200/_cat/nodes 或者 GET /_cluster/health
索引层面:GET /_cluster/health?pretty&level=indices
分片层面:GET /_cluster/health?pretty&level=shards
恢复情况:GET /_recovery?pretty

1、有unassigned分片的排查思路 :

先诊断:GET /_cluster/allocation/explain
#重新分配: /_cluster/reroute
实在无法分配,索引重建:
1.1、新建备份索引:
curl -XPUT ‘http://xxxx:9200/a_index_copy/‘ -d ‘{ “settings”:{ “index”:{ “number_of_shards”:3, “number_of_replicas”:1 } } }
1.2、通过reindex api将a_index数据copy到a_index_copy:
POST _reindex { "source": { "index": "a_index" }, "dest": { "index": "a_index_copy", "op_type": "create" } }
1.3、删除a_index索引,这个必须要先做,否则别名无法添加
curl -XDELETE 'http://xxxx:9200/a_index'
1.4、给a_index_copy添加别名a_index
curl -XPOST 'http://xxxx:9200/_aliases' -d ' { "actions": [ {"add": {"index": "a_index_copy", "alias": "a_index"}} ] }'

ElasticSearch集群状态异常(Red、Yellow)原因分析相关推荐

  1. Elasticsearch集群索引分片未分配unassigned导致集群状态红色red异常若干问题解决记录

    一.背景 今天收到告警短信发现某个业务系统几台服务器的日志收集服务filebeat均已下线,把Filebeat都重启之后,准备到Kibana查阅业务系统的日志,检索异常条目,发现从凌晨开始的日志条目都 ...

  2. 锦囊妙计解决elasticsearch集群为red状态

    如何是自己搭建的elasticsearch集群,其实是比较容易发生丢失分片的情况的. 1. 如果集群丢失了主分片 则直接呈现红色的健康状态 严重的会影响到对集群的写入,因为如果主分片丢了,但是集群的m ...

  3. Elasticsearch 集群状态变成黄色或者红色,怎么办?

    1.引言 本系列文章介绍如何修复 Elasticsearch 集群的常见错误和问题. 这是系列文章的第六篇,主要探讨:Elasticsearch 集群状态变成黄色或者红色,怎么办? 第一篇:Elast ...

  4. Java常见异常类型及原因分析

    Java常见异常类型及原因分析 0x1 NullPointerException异常 顾名思义,NullPointerException 是空指针异常.但是在 Java 中没有指针,怎么会有 空指针异 ...

  5. 华大 MCU 之七 DMA 导致 SPI 异常停止的原因分析、DMA 配置的那些坑

    缘起   在最近的项目测试中发现,SPI 通信总是莫名其妙的失败,查看寄存器发现 SPI 已经被停止了.根据手册,SPI 在异常情况下会被强制停止(SPI 的使能为被清零),而根据波形显示通信过程没有 ...

  6. C++软件异常的常见原因分析与总结(实战经验分享)

    目录 1.概述 2.引发软件异常的常见原因 2.1.变量未初始化 2.2.死循环 2.3.内存越界 2.4.内存泄漏 2.5.空指针与野指针 2.6.内存访问违例 2.7.栈内存被当成堆内存去释放 2 ...

  7. 如何监控 Elasticsearch 集群状态?

    Marvel 让你可以很简单的通过 Kibana 监控 Elasticsearch.你可以实时查看你的集群健康状态和性能,也可以分析过去的集群.索引和节点指标.

  8. Java 常见异常类型及其原因分析

    开发工具与关键技术:Java 作者:吴永旗 撰写时间:2019年5月22日 常见几种的异常有:NullpointerException异常:classCastException异常: ArrayInd ...

  9. kubernetes 集群状态异常 [ connect: connection refused ]

    获取kubectl状态有报错信息: Get "http://127.0.0.1:10251/healthz": dial tcp 127.0.0.1:10251: connect: ...

  10. Elasticsearch集群的搭建与管理

    主机规划: 192.168.0.1(node1) 192.168.0.2(node2) 部署node1 node1配置如下: 下载https://artifacts.elastic.co/downlo ...

最新文章

  1. HttpClient学习
  2. 让你上瘾的网易云音乐推荐算法,用Word2vec就可以实现
  3. 什么是指针?什么是数组?指针和数组的关系?
  4. 标签在MPLS网络中的功能—Vecloud
  5. MySQL带OR关键字的多条件查询
  6. 解决:pycharm中动画函数animation.FuncAnimation不起作用
  7. 汇编语言复习摘要二——寄存器
  8. mysql 乱码解决方案
  9. [C++] 头文件中的#ifndef,#define,#endif以及#pragma用法
  10. 固态硬盘linux提升,分析如何提升Linux的固态硬盘使用率?
  11. 拒绝卡顿——在WPF中使用多线程更新UI
  12. 高质量商业计划书的10个写作心得
  13. 学习利器,借助Tampermonkey写一个B站视频加速器脚本
  14. Vue使用Swiper看这一篇就够了
  15. Blender Python相关操作指令(bpy)
  16. 李永乐讲通信与计算机专业,哈工大通信与信息工程18考研经验分享
  17. GICv3软件overview手册之GICv4对虚拟LPI的直接注入(1)
  18. Office word 列表级别不显示解决办法
  19. SRM587 (div2)
  20. wf信号极佳但是显示连接不到服务器,wifi信号满格却上不了网怎么办【原因及解决方法】...

热门文章

  1. 论文写作 之 Introduction
  2. dingo php,dingo/api 使用
  3. addClass函数
  4. 半次元收藏夹爬虫(残疾版,不喜勿喷)
  5. barefoot公司和Tofino芯片
  6. openharmony开发TS语言基础
  7. 严格的概念认识——关系、关系模型
  8. FFmpeg完美编译iOS版本
  9. 图表点编辑数据无反应_excel输入数据表格没反应-点击EXCEL插入图表没有反应
  10. 灰色预测残差修正 matlab,基于残差修正灰色预测模型的长期电力负荷预测方法与流程...