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

Elastic Stack-ES集群常用的API

 前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除

学习B站博主教程笔记: 

最新版适合自学的ElasticStack全套视频(Elk零基础入门到精通教程)Linux运维必备—ElasticSearch+Logstash+Kibana精讲_哔哩哔哩_bilibiliicon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1VMW3e6Ezk/?spm_id_from=333.1007.tianma.1-1-1.click&vd_source=e539f90574cdb0bc2bc30a8b5cb3fc00

1、ES集群健康状态API

 # 安装jq工具
 yum -y install epel-release
 yum -y install jq
 ​
 # 测试取数据
 [root@k8s-master ~]# curl http://192.168.1.10:9200/_cluster/health 2>/dev/null | jq
 {
   "cluster_name": "cluster-elk",
   "status": "green",
   "timed_out": false,
   "number_of_nodes": 3,
   "number_of_data_nodes": 3,
   "active_primary_shards": 25,
   "active_shards": 42,
   "relocating_shards": 0,
   "initializing_shards": 0,
   "unassigned_shards": 0,
   "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
 }
 ​
 [root@k8s-master ~]# curl http://192.168.1.10:9200/_cluster/health 2>/dev/null | jq .status
 "green"
 GET http://192.168.1.10:9200/_cluster/health
 相关参数说明:
 cluster_name:集群的名称
 status:集群的健康状态,基于其主分片和副本分片的状态
     ES集群有以下三种状态:
         green:所有分片都已分配
         yellow:所有主分片都已分配,但一个或多个副本未分配;如果集群中的某个节点发生故障,则在修复该节点之前,某些数据可能不可用
         red:一个或多个主分片未分配,因此某些数据不可用,可能会在集群启动期间短暂发生,因为分片了主分片
 timed_out: 是否有超时;默认30秒
 number_of_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: 集群中活动分片

2、ES集群的设置及优先级

如果使用多种方法配置相同的设置,Elasticsearch会按以下优先顺序应用这些设置:

  • Transient setting(临时设置,集群重启后失效)
  • Persistent setting(持久化配置,集群重启后依旧生效)
  • elasticsearch.yml setting(配置文件)
  • Default setting value(默认设置值)
 # 查询集群的所有配置信息
 http://192.168.1.10:9200/_cluster/settings?include_defaults=true&flat_settings=true
 ​
 # 修改集群的配置信息
 PUT http://192.168.1.10:9200/_cluster/settings
 {
     "transient":{
         "cluster.routing.allocation.enable":"none"
     }
 }
 ​
 # 相关参数说明
 "cluster.routing.allocation.enable":
     "all": 允许所有分片类型进行分配
     "primaries": 仅允许分配主分片
     "new_primaries": 仅允许新创建索引分配主分片
     "none":不允许分配任何类型的分片

3、集群状态API

集群状态是一种内部数据结构,它跟踪每个节点所需的各种信息,包括:

  • 集群中其他节点的身份和属性
  • 集群范围的设置
  • 索引元数据,包括每个索引的映射的设置
  • 集群中每个分片副本的位置和状态
 # 查看集群的状态信息
 GET http://192.168.1.10:9200/_cluster/state
 ​
 # 只查看节点信息
 GET http://192.168.1.10:9200/_clusrer/state/nodes
 ​
 # 查看nodes,version,routing_table这些信息,并且查看以"cluester*"开头的所有索引
 GET http://192.168.1.10:9200/_cluster/state/nodes,version,routing_table/cluster*

4、集群统计API

Cluster State API允许从集群范围的角度检索统计信息。返回基本的索引指标(分片数量,存储大小,内存使用情况)和有关构成集群的当前节点的信息(数量,角色,操作系统,JVM版本,内存使用情况,cpu和已安装的插件)

 # 查看统计信息
 GET http://192.168.1.10:9200/_cluster/stats

5、查看集群的分片分配情况

集群分配解释API的目的是为集群中的分片分配提供解释

对于未分配的分片,解释API提供了有关未分配分片的原因和解释;对于已分配的分片,解释API解释了为什么分片保留在其他节点上并且没有移动或重新平衡到另一个节点。

 # 分析teacher索引的0号分片未分配的原因
 GET http://192.168.1.10:9200/_cluster/allocation/explain
 {
     "index": "teacher",
     "shard": 0
     "primary": true
 }

6、集群分片重路由API

reroute命令允许手动更改集群中各个分片的分配

 # 将"teacher"索引的0号分片从master节点移动到node1节点
 POST http://192.168.1.10:9200/_cluster/reroute
 {
     "commands":{
         "move":{
             "index": "teacher",
             "shard": 0,
             "from_node": "master",
             "to_node": "node1"
         }
     }
 }
 ​
 # 取消副本分片的分配,其副本会重新初始化分配
 POST http://192.168.1.10:9200/_cluster/reroute
 {
     "commands":{
         "move":{
             "index": "teacher",
             "shard": 0,
             "node": "node1"
         }
     }
 }

致谢

在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。 

学习永无止境,让我们共同进步!!


http://www.kler.cn/a/292228.html

相关文章:

  • oneplus3t-Lineage16.1-Android.bp
  • CSP-X2024山东小学组T2:消灭怪兽
  • 金融领域先锋!海云安成功入选2024年人工智能先锋案例集
  • Kotlin中泛型的协变
  • 深度学习在边缘检测中的应用及代码分析
  • SpringCloud 微服务消息队列灰度方案 (RocketMQ 4.x)
  • 【重学 MySQL】十二、SQL 语言的规则与规范
  • 认识爬虫技术
  • Rust多线程编程概述
  • 爬虫IP池推荐
  • 宠物空气净化器是智商税吗?希喂、IAM、范罗士哪款除毛效果更好?
  • FLTRNN:基于大型语言模型的机器人复杂长时任务规划
  • 深度学习基础--监督学习
  • 如何编写测试用例?
  • C++入门项目:Linux下C++轻量级Web服务器 跑通|运行|测试(小白进)
  • 【FreeRTOS】内存管理
  • bug“医典”
  • Prometheus与Grafana入门:从安装到基础监控的完整指南
  • 数字政务行业ITSM案例分析报告
  • Spring Task
  • 基于BiLSTM-CRF的医学命名实体识别研究(下)模型构建
  • ITK-重采样
  • conda迁移windows虚拟环境到linux
  • React应用中的状态管理:Redux vs Context API
  • JVM系列(九) -垃圾对象的回收算法介绍
  • 深度学习回归任务训练代码模版