elasticsearch系列四:集群常规运维

概述

 在使用es中如果遇到了集群不可写入或者部分索引状态unassigned,明明写入了很多数据但是查不到等等系列问题该怎么办呢?咱们今天一起看下常用运维命令。

案例

      起初我们es性能还跟得上,随着业务发展壮大,发现查询性能越来越不行了,我们可以通过cat api查看索引的segments情况,比如下图:

图片

     如果发现索引的segment段过多,并且每个段数据量很小,那么就可以通过合并段的措施来提升检索性能。

     

那么我们在大批量迁移的时候,发现数据明明写入了但是少了很多?这是为什么呢,咱们还是可以通过cat api查看下线程池的状态,如下图:

图片

     

通过查看写入线程池的状态观测是不是达到集群最大写入能力了,导致线程池执行了拒绝策略等等。更多的线程池说明可见官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-threadpool.html 

    还可以通过cat查看集群中节点数据分配情况如图:

图片

    

    上面都是介绍的cat api的使用方法,那么对于有的索引状态、集群状态不正常的时候我们怎么分析原因呢?这时候就得通过cluster api了,比如诊断当前集群什么不健康,如下图:

图片

  

     比如我们得到如下原因:

The node containing this shard copy recently left the cluster. Elasticsearch is waiting for it to return. If the node does not return within [%s] then Elasticsearch will allocate this shard to another node. Please wait.

      那通过这个结果我们就可以清晰的了解到原来这个索引之所以是unassigned状态是因为,持有它的节点离开了集群,也就是说有个节点可能down了 和集群失去联系了。之前在中国电信就遇到过类似问题,由于集群中某个节点物理内存出现问题,未接到通知运维同事就临时停机修复了,当时集群部分索引状态就unassigned,也是通过explain查询到有一台物理节点失去联系了,联系运维同事后才知有一台集群出现了问题,好在当时只是存储了日志数据,停掉了所有的logstash,关闭了集群rebalance和自动分配功能,防止大量磁盘数据移动。

     待该节点恢复后再开启rebalance和自动分配功能,开启logstash消费囤积在kafka中的日志数据。

     包括我们升级es集群的时候也需要先关闭以上两个功能,具体api如下:

           cluster.routing.allocation.enable :

                 all - (默认值)允许为所有类型的分片分配分片。

                 primaries - 仅允许分配主分片的分片。

                 new_primaries - 仅允许为新索引的主分片分配分片。

                 none - 任何索引都不允许任何类型的分片。

          cluster.routing.rebalance.enable

                  all - (默认值)允许各种分片的分片平衡。

                  primaries - 仅允许主分片的分片平衡。

                  replicas - 仅允许对副本分片进行分片平衡。

                  none - 任何索引都不允许任何类型的分片平衡。

           cluster.routing.allocation.allow_rebalance

                 all 始终 - 始终允许重新平衡。

                 indices_primaries_active - 仅在所有主分片激活时。

                 indices_all_active - (默认)仅当所有分片都激活时。

    对于升级完后的集群或者部分节点正常后的es来说可能会发生数据恢复,那么这个时候如果想最短时间恢复完成,可以通过设置集群的并发度:

          cluster.routing.allocation.node_concurrent_recoveries 

该值最好等于磁盘的数量(对于raid0来说)。

总结

我们想要更好的使用es不能只注意查询语法的书写,需要全访问的深入的了解es,建议从头到尾过一遍官方文档,毕竟只有目前最了解孩子。


Elasticsearch系列经典文章

  • elasticsearch列一:索引模板的使用

  • elasticsearch系列二:引入索引模板后发现数据达到一定量还是慢怎么办?

  • elasticsearch系列三:常用查询语法

  • Elasticsearch 底层存储原理解密

  • Elasticsearch优化建议

  • 干货 | Elasticsearch 8.X 节点角色划分深入详解

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NFC与ZigBee技术在智慧农业物联网监测系统中的应用

近年来,我国农业物联网技术飞速发展,基于物联网技术的智能农业监测系统有望得到较大规模的推广应用。但传统的物联网农业监测系统其网络结构层次单一,多采用基于有线或无线结构的节点-上位机数据采集模式,节点数据访问模式缺乏灵活…

软件测试/测试开发丨Python常用数据结构-元组Tuple

元组的定义 元组是有序的、不可变的对象合集;元组使用小括号包围,各个对象之间使用逗号分隔;元组是异构的,可以包含多种数据类型。 元组的创建 方法一:使用逗号分隔方法二:通过小括号填充元素方法三&…

虚拟机迁移技术原理与应用

虚拟机迁移技术主要应用于两种场景: 第一种,随着现在虚拟化的发展,传统it架构的物理机需迁移到虚拟机上,实现负载均衡、资源优化等目的。 第二种,将虚拟机从一个虚拟化平台迁移到另一个虚拟化平台,可以是…

docker-compose部署zabbix服务

1.首先要有docker环境, 关闭防火墙,selinux 开启docker,并设置开机自启动 Linux的docker的安装https://blog.csdn.net/m0_58146415/article/details/134654933 2.docker-compose的安装----github下载 curl -SL https://github.com/docke…

C++:第十一讲DFS深搜

Everyday English Your optimal career is simply this: Share the real you with physical world through th e process of creative self-expression. 你的最佳职业很简单,就是这样:通过创造性自我表达的途径和世界分享真实的你。 前言 今天带着大家…

springboot3+vue3实现大文件分片上传和断点续传

大文件分片上传和断点续传 大文件分片上传是一种将大文件切分成小片段进行上传的策略。这种上传方式有以下几个主要原因和优势: 网络稳定性:大文件的上传需要较长时间,而网络连接可能会不稳定或中断。通过将文件切分成小片段进行上传&#xf…

四阶轨迹规划,高精度电机运动控制必备

最近开始接触百纳米级别的控制精度,为了达到这一精度,必须使用高阶的轨迹规划。 四阶轨迹规划的作用是把一个阶跃信号变为一个四阶连续信号。 例如一个电机,想让它从a点移动到b点,那么给出的参考信号在位置,速度&…

灸哥问答:架构师如何提高自己的竞争力?

这个问题其实从我的主题【程序员如何转型架构师】所述内容中是能看到答案的,这里针对这个问题做一次总结性的回复: 1、 深入理解业务领域 充分理解你所在公司和行业的业务需求,运用 DDD 的业务分析思想和手段,构建更贴近实际业务…

悔不该用中文作为Windows的用户名啊~

前言 汉字在中华文明已经有了几千年的历史,小伙伴们所使用名字更是伴随了自己一生。所以小白们在拿到自己的新电脑,总会想着把自己的中文名字设置为电脑的用户名,这样更能显示出那是自己的专属电脑! 一开始小白也是这么想的&…

【JavaScript】new原理解析

✨ 专栏介绍 在现代Web开发中,JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性,还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言,JavaScript具有广泛的应用场景&#x…

Python+OpenGL绘制3D模型(七)制作3dsmax导出插件

系列文章 一、逆向工程 Sketchup 逆向工程(一)破解.skp文件数据结构 Sketchup 逆向工程(二)分析三维模型数据结构 Sketchup 逆向工程(三)软件逆向工程从何处入手 Sketchup 逆向工程(四&#xf…

Zookeeper之快速入门

前言 本篇文章主要还是让人快速上手入门,想要深入的话可以通过书籍系统的学习。 简介 是什么 可用于协调、构建分布式应用。 本质上是一个分布式的小文件存储系统。提供基于类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理…

Unity中Shader裁剪空间推导(在Shader中使用)

文章目录 前言一、在Shader中使用转化矩阵1、在顶点着色器中定义转化矩阵2、用 UNITY_NEAR_CLIP_VALUE 区分平台矩阵3、定义一个枚举用于区分当前是处于什么相机 二、我们在DirectX平台下,看看效果1、正交相机下2、透视相机下3、最终代码 前言 在上一篇文章中&…

Linux驱动开发学习笔记6《蜂鸣器实验》

目录 一、蜂鸣器驱动原理 二、硬件原理分析 三、实验程序编写 1、 修改设备树文件 (1)添加pinctrl节点 (2)添加BEEP设备节点 (3)检查PIN 是否被其他外设使用 2、蜂鸣器驱动程序编写 3、编写测试AP…

【JS逆向学习】快乐学堂

逆向目标 登陆接口:https://www.91118.com/passport/Account/LoginPost?r0.20790763112591337&kdsyes&username13127519353&passbb3mlkFBqqo%3D&recordPwd1&ckcode5719&fscodeklxt&invite 加密参数: r:0.2079…

机器学习模型可解释性的结果分析

模型的可解释性是机器学习领域的一个重要分支,随着 AI 应用范围的不断扩大,人们越来越不满足于模型的黑盒特性,与此同时,金融、自动驾驶等领域的法律法规也对模型的可解释性提出了更高的要求,在可解释 AI 一文中我们已…

Linux开发工具——gdb篇

Linux下调试工具——gdb 文章目录 makefile自动化构建工具 gdb背景 gdb的使用 常用命令 总结 前言: 编写代码我们使用vim,编译代码我们使用gcc/g,但是我们,不能保证代码没问题,所以调试是必不可少的。与gcc/vim一样&…

Python中使用SQLite数据库的方法2-2

3.3.2 创建表单及字段 通过“3.2 创建Cursor类的对象”中创建的Cursor类的对象cur创建表单及字段,代码如图5所示。 图5 创建表单及字段 从图5中可以看出,通过Cursor类的对象cur调用了Cursor类的execute()方法来执行SQL语句。该方法的参数即为要指定的S…

在电商行业中,如何采集电商数据使用数据分析提高业务绩效

数据分析丨知识点丨电商数据采集 福利指路:文章底部领取《数据分析全家桶》 随着电子商务的不断发展,越来越多的企业开始使用数据分析来提高业务绩效。数据分析可以帮助电商企业更好地理解市场和客户,以制定更有针对性的营销策略和产品方案。…

ksuser.dll文件缺失怎么办?软件或游戏无法启动,一键自动修复

很多小伙伴反馈,自己的电脑中了病毒,被杀毒软件清理后,在打开游戏或软件的时候,经常会报错“提示无法找到ksuser.dll文件,建议重新安装软件或游戏”。自己根据提示重装后,还是报错,不知道应该怎…