ElasticSearch 常用运维命令收集

ElasticSearch 常用运维命令收集

1. 集群健康检查

  1. 快速查看

    curl -XGET 'localhost:9200/_cat/health?v&pretty'
    
    • 集群的健康状态status,还可以了解到集群当前有多少节点number_of_nodes,多少个数据节点number_of_data_nodes,有多少个主分片active_primary_shards,以及正在搬迁中的分片relocating_shards、初始化中的分片initializing_shards,还未正常分配的分片unassigned_shards等信息。如果集群是非green状态,我们还可以通过active_shards_percent_as_number来查看集群恢复的进度。

    另外从number_of_pending_tasks参数也能够看出当前集群的任务堆积情况,如果number_of_pending_tasks数量较大,则表明Master在处理task时有点力不从心,承载的压力较大了。

    • 输出里最重要的就是 status 这行。很多开源的 ES 监控脚本,其实就是拿这行数据做报警判断。status 有三个可能的值:

      green 绿灯,所有分片都正确运行,集群非常健康。
      yellow 黄灯,所有主分片都正确运行,但是有副本分片缺失。这种情况意味着 ES 当前还是正常运行的,但是有一定风险。注意,在 Kibana4 的 server 端启动逻辑中,即使是黄灯状态,Kibana 4 也会拒绝启动,死循环等待集群状态变成绿灯后才能继续运行。
      red 红灯,有主分片缺失。这部分数据完全不可用。而考虑到 ES 在写入端是简单的取余算法,轮到这个分片上的数据也会持续写入报错。
      对 Nagios 熟悉的读者,可以直接将这个红黄绿灯对应上 Nagios 体系中的 Critical,Warning,OK 。

  2. 另外一个命令: “curl -XGET ‘localhost:9200/_cluster/health’”

    • 有一个level参数,该参数是一个可选参数,提供了三种枚举值,分别是cluster、indices和shards。默认就是cluster,如果我们需要查看索引或者分片维度的健康信息,则可以使用如下API。

      GET /_cluster/health?level=indices
      GET /_cluster/health?level=shards

  3. 集群节点监控

    curl -XGET 'localhost:9200/_cat/nodes?v&pretty'
    ip             heap.percent ram.percent cpu load_1m load_5m load_15m node.role  master name
    172.18.225.251           59          98  14    2.28    2.21     1.75 cdhilmrstw *      es-node01
    

    这是一个针对Elasticsearch集群节点的_cat/nodes API请求的响应。以下是各字段的含义以及如何识别风险:

    • ip:节点的IP地址。
    • heap.percent:JVM堆内存使用百分比。
    • ram.percent:系统内存使用百分比。
    • cpu:节点的CPU使用率。
    • load_1m、load_5m、load_15m:节点的1分钟、5分钟和15分钟的平均负载。
    • node.role:节点的角色,例如 cdhilmrstw 表示节点具有的角色。
    • master:表示节点是否是主节点。
    • name:节点的名称。
    • 单纯查看节点信息 (可以用来做Nginx健康检查使用)

      curl -XGET ‘localhost:9200’

  4. 所有索引的信息,包括索引的名称、文档数量、存储大小等。

    • curl -XGET ‘localhost:9200/_cat/indices?v’

    • :确定哪些索引有问题,多少索引有问题。
      _cat API 可以通过返回结果告诉我们这一点:
      GET _cat/indices?v&health=red
      GET _cat/indices?v&health=yellow
      GET _cat/indices?v&health=green

  5. Elasticsearch集群中所有分片的信息,包括分片所在的节点、分片状态等。

    curl -XGET 'localhost:9200/_cat/shards?v'
    
  6. Elasticsearch集群中所有节点的性能统计信息,包括内存使用情况、CPU负载、线程池情况等。

    • curl -XGET ‘localhost:9200/_nodes/stats?pretty’

      • 在_nodes/stats命令的输出中,以下是一些最值得关注的关键信息:

        1. 内存使用情况:包括内存总量、已使用内存、剩余内存等信息,以及内存池的使用情况。

        2. CPU负载:包括CPU使用率、每个CPU核心的负载情况,以及CPU线程池的情况。

        3. 线程池情况:包括搜索线程池、索引线程池、刷新线程池等的活跃线程数、队列大小等信息。

        4. 文件系统情况:包括磁盘总容量、已使用容量、剩余容量等信息。

        5. 网络情况:包括网络接口的发送和接收数据量、连接数等信息。

        6. JVM情况:包括JVM堆内存使用情况、垃圾回收情况、类加载情况等信息。

        7. 索引情况:包括索引的数量、文档数量、存储大小等信息。

        8. 缓存情况:包括字段数据缓存、请求缓存、索引缓存等的命中率、大小等信息。

        9. 负载情况:包括每个节点的负载情况,如搜索请求、索引请求等的数量和响应时间。

        这些信息可以帮助您全面了解Elasticsearch集群的性能情况,包括节点的资源利用情况、负载情况、缓存命中率等,有助于监控和优化集群的性能表现。

    • _nodes/process?pretty

    • 查看节点中fielddata占用堆内存空间的大小。

      GET _cat/fielddata?v

    • 当构建单元和集成测试时,或者实现和 Elasticsearch 相关的自动化脚本时,cluster-health API 还有另一个小技巧非常有用。你可以指定一个 wait_for_status 参数,它只有在状态达标之后才会返回。比如:

      GET _cluster/health?wait_for_status=green
      这个调用会 阻塞 (不给你的程序返回控制权)住直到 cluster-health 变成 green ,也就是说所有主分片和副本分片都分配下去了。这对自动化脚本和测试非常重要。

  7. 查看并发请求,TPS,QPS 等情况

    1. 并发连接数
      curl -XGET ‘localhost:9200/_cat/thread_pool?v’
      集群中各种线程池的情况,包括活跃线程数、队列大小等信息。您可以关注active字段,它表示当前的活跃线程数,可以用来估算并发连接数。

    2. 查看每秒事务数(TPS):
      curl -XGET ‘localhost:9200/_cat/indices?v’
      这个命令将返回Elasticsearch集群中所有索引的信息,包括文档数量、存储大小等。通过监测文档索引的增长速度,可以估算每秒事务数(TPS)。

    3. 查看每秒查询数(QPS):
      curl -XGET ‘localhost:9200/_cat/indices?v’

      通过监测每个索引的查询请求增长速度,可以估算每秒查询数(QPS)。
      
    4. 您还可以考虑使用Elasticsearch的Monitoring插件或者Elasticsearch的X-Pack监控功能来更直观地查看每秒事务数(TPS)、每秒查询数(QPS)等数据。

  8. 常用命令

    集群运维常用命令总结

    本文我们从集群运维角度出发,向大家介绍了我们在日常的集群运维工作中常用到的集群维度相关命令。下面以表格的形式总结如下:

    命令API命令说明
    GET /_cluster/health查看集群健康状态等信息
    GET /_cat/pending_tasks查看集群任务堆积情况
    GET /_cluster/state//查看集群详细的元数据信息
    GET /_cluster/stats查看集群各维度的统计信息,包括节点CPU、JVM等使用率情况
    GET _cluster/allocation/explain查看集群分片分配详情
    POST /_cluster/reroute更改分片分配策略
    GET /_cluster/settings查看集群层面settings设置信息
    GET /_tasks查看集群中正在执行的task信息
    GET /_cat/pending_tasks查看任务堆积详情
    GET /_cluster/pending_tasks查看任务堆积详情 (从该API中可以更加直观的看到该task是否在执行executing,以及在队列中等待的时间time_in_queue_millis等详细信息。)

2. 索引类

  • 查询全部索引下的文档总数:

    GET /_cat/count
    
  • 查询某个索引下的文档总数(为索引名):

    GET /_cat/count/<target>
    
  • 查看全部索引状态(存储与文档数)

    curl -XGET 'localhost:9200/_cat/indices?v&pretty'
    health status index      uuid                   pri rep docs.count docs.deleted store.size pri.store.size
    yellow open   evaluating xlVUWY5CTR6f3wUemFLj0w   1   1   12129994       132415      6.4gb          6.4gb
    

3. 分片类

  • 查看集群分片分配详情
    GET _cluster/allocation/explain

  • GET _cluster/allocation/explainAPI,查看分配失败的具体原因

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

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

相关文章

mp4视频转rosbag文件(图片压缩、画面旋转、时间戳调整)

目录 目的 环境 主要步骤 创建py文件 执行py文件 效果 程序解释 画面旋转 时间戳调整 目的 将相机录制的mp4格式文件&#xff0c;转为ROS系统能使用的bag格式文件。 如果相机的画面不是正视的&#xff0c;会影响后续使用&#xff0c;需要旋转调整。 环境 安装有ROS…

亚马逊云科技 re:Invent 大会 - ElastiCache Serverless 模式来袭

大会介绍 亚马逊云科技的 re:Invent 大会是一年一度的&#xff0c;面向全球技术开发者科技盛会。几乎每次都会发布云科技、云计算等相关领域的产品重磅更新&#xff0c;不但将时下主流热门的技术不断整合&#xff0c;也未将来的发展标明了方向。 亚马逊云科技开发者社区为开发…

处理go中clientv3连接etcd包异常

目录 1、创建任意项目 2、出现异常 3、处理异常 1、创建任意项目 go mod init go-test 项目代码内容: package main//go.etcd.io/etcd/clientv3重点处理这个包 import ("context""fmt""go.etcd.io/etcd/clientv3""log""ti…

【滑动窗口】【map】LeetCode:76最小覆盖子串

作者推荐 【二叉树】【单调双向队列】LeetCode239:滑动窗口最大值 本文涉及知识点 滑动窗口 题目 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串&#xff0c;则返回空字符串 “” 。 注意&#xff1a; 对…

根据DCT特征训练CNN

记录一次改代码的挣扎经历&#xff1a; 看了几篇关于DCT频域的深度模型文献&#xff0c;尤其是21年FcaNet&#xff1a;基于DCT 的attention model&#xff0c;咱就是说想试试将我模型的输入改为分组的DCT系数&#xff0c;然后就开始下面的波折了。 第一次尝试&#xf…

深入解析 Flink CDC 增量快照读取机制

一、Flink-CDC 1.x 痛点 Flink CDC 1.x 使用 Debezium 引擎集成来实现数据采集&#xff0c;支持全量加增量模式&#xff0c;确保数据的一致性。然而&#xff0c;这种集成存在一些痛点需要注意&#xff1a; 一致性通过加锁保证&#xff1a;在保证数据一致性时&#xff0c;Debez…

运算符的结合性(形神兼备)

运算符的结合性&#xff08;形神兼备&#xff09; 在编译原理中&#xff0c;产生式就是权威。表达式如果以某产生式进行语法分析&#xff0c;那么就只能按照它的方式进行表达&#xff0c;且不能具有二义性。但是&#xff0c;在表达式中有时会涉及打括号的问题。很多时候&#…

20231226在Firefly的AIO-3399J开发板上在Android11下调通后摄像头ov13850

20231226在Firefly的AIO-3399J开发板上在Android11下调通后摄像头ov13850 2023/12/26 8:22 开发板&#xff1a;Firefly的AIO-3399J【RK3399】 SDK&#xff1a;rk3399-android-11-r20211216.tar.xz【Android11】 Android11.0.tar.bz2.aa【ToyBrick】 Android11.0.tar.bz2.ab And…

TypeScript:箭头函数

在TypeScript中&#xff0c;箭头函数是一种简洁的函数定义方式。以下是一些使用箭头函数的例子&#xff1a; 基本的箭头函数&#xff1a; const add (x: number, y: number) > {return x y; };单个参数的箭头函数可以省略括号&#xff1a; const square (x: number) >…

如何配置TLSv1.2版本的ssl

1、tomcat配置TLSv1.2版本的ssl 如下图所示&#xff0c;打开tomcat\conf\server.xml文件&#xff0c;进行如下配置&#xff1a; 注意&#xff1a;需要将申请的tomcat版本的ssl认证文件&#xff0c;如server.jks存放到tomcat\conf\ssl_file\目录下。 <Connector port"1…

Linux介绍、安装、常见命令

Linux介绍 Linux是一种开源的操作系统&#xff0c;其内核由林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;在1991年开始开发。与其他常见的操作系统如Windows和Mac OS不同&#xff0c;Linux是一个开放、自由的系统&#xff0c;可以免费使用、修改和分发。 Linux的核心特…

如何区分ChatGPT 3.5与ChatGPT 4:洞悉智能对话的新时代

如何区分ChatGPT 3.5与ChatGPT 4&#xff1a;洞悉智能对话的新时代 随着人工智能技术的快速发展&#xff0c;OpenAI持续推出更加强大和精准的模型&#xff0c;以改善和扩展用户体验。在聊天机器人领域&#xff0c;特别是OpenAI的ChatGPT系列&#xff0c;每一次迭代都带来了显著…

企业级实战项目:基于 pycaret 自动化预测公司是否破产

本文系数据挖掘实战系列文章&#xff0c;我跟大家分享一个数据挖掘实战&#xff0c;与以往的数据实战不同的是&#xff0c;用自动机器学习方法完成模型构建与调优部分工作&#xff0c;深入理解由此带来的便利与效果。 1. Introduction 本文是一篇数据挖掘实战案例&#xff0c;…

【超图】SuperMap 模型处理自动化方案 ——目录

作者&#xff1a;taco 在支持客户的过程中&#xff0c;会有很多用户会想要实现自动化流程&#xff0c;并非按部就班的一步一步去搞数据&#xff0c;搞优化。总是想要一个按钮就实现所有数据的处理&#xff0c;发布&#xff0c;预览等功能。根据这种情况&#xff0c;尝试搞一些自…

uniapp APP应用程序iOS没有上架到苹果应用商店如何整包更新?

随着移动互联网的快速发展&#xff0c;uni-app 作为一种跨平台开发框架&#xff0c;受到了广泛欢迎。然而&#xff0c;有时候开发者可能会遇到一个问题&#xff1a;如何为已经发布到苹果应用商店的 uni-app APP 进行整包更新&#xff1f;尤其是当应用还没有上架到苹果应用商店时…

android 四大组件和handler、looper

Android 四大组件 Android 开发中&#xff0c;四大组件&#xff08;Four Major Components&#xff09;是指构成 Android 应用程序的四种基本组件。这些组件是活动&#xff08;Activity&#xff09;、服务&#xff08;Service&#xff09;、广播接收器&#xff08;Broadcast R…

Git配置和钩子使用

0 Preface/Foreword 1 Usage 1.1 参考 https://www.cnblogs.com/guge-94/p/11287535.html 1.2 基本配置 1.2.1 配置名字和邮箱 git config --global user.name "xxx" git config --global user.email "xxx" 1.3 客户端基本配置 1.3.1 core.editor gi…

Hadoop-3.3.4集群部分lib缺失问题

1.问题描述 (base) [hadoophadoop1 native]$ hadoop checknative 2023-12-25 14:20:21,615 INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native 2023-12-25 14:20:21,618 INFO zlib.ZlibFactory: Successfully loaded &…

nodejs进阶

文章目录 写在前面一、dependencies、devDependencies和peerDependencies区别&#xff1a;二、需要牢记的npm命令2.1 npm init2.2 npm config list2.3 npm配置镜像源 三、npm install 的原理四、package-lock.json的作用五、npm run 的原理六、npx6.1 npx是什么6.2 npx的优势6.…

在Spring Boot中使用Redis

在Spring Boot中使用Redis,需要先添加Redis的依赖,然后配置Redis连接,最后通过Spring提供的模板类操作Redis。下面是一个基本的使用指南。1. 添加Redis依赖 在你的Spring Boot项目的pom.xml文件中,添加Redis Starter依赖: <dependency><groupId>org.springf…