Elasticsearch生产集群健康状况为yellow原因分析和解决方案
问题描述:
ES状态如下图所示,且新产生的日志发送至Elasticsearch失败
问题分析:
查看es集群的健康状态
执行命令curl -X GET http://127.0.0.1:9200/_cluster/health -u elastic:nroadelastic, 查看集群分片的情况,重点关注unassigned_shards没有正常分配的副本数量,返回信息如下:
各返回字段描述:cluster_name---集群的名称。
status---集群的运行状况,基于其主要和副本分片的状态。状态为:– green-所有分片均已分配。– yellow-所有主分片均已分配,但未分配一个或多个副本分片。如果群集中的某个节点发生故障,则在修复该节点之前,某些数据可能不可用。– red-未分配一个或多个主分片,因此某些数据不可用。在集群启动期间,这可能会短暂发生,因为已分配了主要分片。
timed_out---如果false响应在timeout参数指定的时间段内返回(30s默认情况下)。
number_of_nodes---集群中的节点数。
number_of_data_nodes---作为专用数据节点的节点数。
active_primary_shards---活动主分区的数量。
active_shards---活动主分区和副本分区的总数。
relocating_shards---正在重定位的分片的数量。
initializing_shards---正在初始化的分片数。
unassigned_shards---未分配的分片数。
delayed_unassigned_shards---其分配因超时设置而延迟的分片数。
number_of_pending_tasks---尚未执行的集群级别更改的数量。
number_of_in_flight_fetch---未完成的访存数量。
task_max_waiting_in_queue_millis---自最早的初始化任务等待执行以来的时间(以毫秒为单位)。
active_shards_percent_as_number—群集中活动碎片的比率,以百分比表示。
找到问题索引
执行命令curl http://127.0.0.1:9200/_cat/indices -u elastic:nroadelastic ,获取所有异常索引(yellow),如图所示:
执行如下命令 curl http://127.0.0.1:9200/_cluster/allocation/explain -u elastic:nroadelastic ,获取索引异常原因:
如图所示,提示异常原因为:unassigned、the shard cannot be allocated to the same node on which a copy of the shard already exists和cannot allocate because allocation is not permitted to any of the nodes,是由于节点丢失导致无法进行副本复制导致的。
问题处理:
查看上述异常索引的settings:
curl http://127.0.0.1:9200/authentication-log-2020.09.02/_settings -u elastic:nroadelastic
当副本数大于或等于数据节点数时,那么每个分片只能最多有节点数量-1个副本,无法分配的副本数则为主分片数*(副本数-(节点数-1)),例如:假设节点数为3,主分片数为5,副本数为3,那么无法分配的副本数则为:5*(3-(3-1))=5。
而内网环境的ES是单节点,则副本分片为0,而索引settings中副本分片大小为1,那么此时只需要重新设置索引副本分片数即可,具体操作如下:
执行命令curl -X PUT -H "Content-Type: application/json" -d '{"number_of_replicas":"0"}' 'http://127.0.0.1:9200/authentication-log-2020.09.02/_settings' -u elastic:nroadelastic,返回true则修改成功,
再次查看该索引状态,状态已由yellow变为green:
重复上述步骤将异常索引依次处理,则Elasticsearch状态也将由yellow变为green,日志也可正常上传至Elasticsearch。
Elasticsearch生产集群健康状况为yellow原因分析和解决方案相关推荐
- ElasticSearch面试 - es 生产集群的部署架构是什么?
ElasticSearch面试 - es 生产集群的部署架构是什么? 面试题 es 生产集群的部署架构是什么?每个索引的数据量大概有多少?每个索引大概有多少个分片? 面试官心理分析 这个问题,包括后面 ...
- 生产集群设置Elasticsearch 7.10
文章目录 生产集群设置Elasticsearch 7.10 索引管理设置 索引恢复设置 节点查询缓存设置 查询缓存索引设置 搜索设置 缓存失效 启用和禁用缓存 启用和禁用每个请求的缓存 缓存设置 监视 ...
- ElasticSearch之集群原理
ElasticSearch 的主旨是随时可用和按需扩容. 而扩容可以通过购买性能更强大(垂直扩容,或 纵向扩容) 或者数量更多的服务器(水平扩容,或 横向扩容 )来实现. 虽然 ElasticSear ...
- 搭建ELK日志分析平台(上)—— ELK介绍及搭建 Elasticsearch 分布式集群
笔记内容:搭建ELK日志分析平台(上)-- ELK介绍及搭建 Elasticsearch 分布式集群 笔记日期:2018-03-02 27.1 ELK介绍 27.2 ELK安装准备工作 27.3 安装 ...
- Ubuntu环境下用docker从0到1部署Elasticsearch 7集群
目录 一.镜像准备 二.配置准备 1.ubuntu安装ssh 2. 开放22号端口 3. 配置密码可访问 4. 登录到ubuntu服务器 三.搭建集群准备 1. FileZilla工具网盘下载 2. ...
- 进阶-第92_es生产集群部署之必须根据自己的集群设置的一些重要参数
1.es的默认参数 es的默认参数是非常好的,适合绝大多数的情况,尤其是一些性能相关的配置.因此刚开始部署一个生产环境下的es集群时,几乎所有的配置参数都可以用默认的设置.有很多的生产环境场景下,都是 ...
- clickhouse 生产集群部署之坑坑洼洼
之前看过ck中文社区,看到了很多莫名其妙的Exception 但并没有解答.自己测试集群小量数据抽取也没有遇到这些问题. 果不其然,生产集群部署都跳了一遍 新增相关配置:网上找的,与我原本的配置的一些 ...
- Elasticsearch跨集群复制(CCR)介绍
跨集群复制(CCR,cross-cluster replication)属于xpack增强包中的功能,需要白金级.企业级证书才可使用.CCR可以将远程集群(leader)中的索引复制到本地集群(fol ...
- Elasticsearch+Kibana集群部署(3节点)
Elasticsearch+Kibana集群部署(3节点) l i n d o r − − 良民笔记 lindor--良民笔记 lindor−−良民笔记 文章目录 Elasticsearch+Kiba ...
- ES生产集群部署之必须根据自己的集群设置的一些重要参数
1.es的默认参数 es的默认参数是非常好的,适合绝大多数的情况,尤其是一些性能相关的配置.因此刚开始部署一个生产环境下的es集群时,几乎所有的配置参数都可以用默认的设置.有很多的生产环境场景下,都是 ...
最新文章
- html5如何传递值,如何将var中的值传递到另一个var
- oracle中如何调用存储过程
- android Rect类的使用
- tomcat apache mysql_Android实现与Apache Tomcat服务器数据交互(MySql数据库)
- 修改Docker默认存储位置的方法
- asterisk的NAT配置
- 7 大工具,驯服大数据
- Missing required icon file.Thebundle does not con
- 青岛市新添智能服务平台 借力大数据智慧城市再扩容
- 王道c语言,王道训练营-C语言-一
- 范德蒙行列式计算以应用
- MBA-day21 假言推理-练习题
- 手机上如何学会使用计算机,手机如何投屏到win7电脑上_手机投屏到win7电脑的详细方法...
- 数据驱动的软件智能化开发| ChinaOSC
- VS2015编译适用于XP系统sp3的dll全过程-无需vs2015运行库
- 英特尔携手浪潮、锐捷网络和Silicom,构建强大的IPU生态系统
- Qt+OpenCV摄像头读取保存回放视频
- vs code远程连接阿里云(SSH)
- 老梦毕设学习平台设计——Home设计
- Python——元组_元组的基本操作_元组与列表相互转换