干货 | Elasticsearch 开发实战常用命令清单

简介: 0、背景Elasticsearch 具有一组丰富的易于理解的 REST API,这些 API 均可如下几种方式通过 HTTP 调用进行访问。CurlPostmanhead 插件cerebro 工具kibana开发实战环节,我推荐使用:kibana Dev-tools。

image.png

链接

image.png

原因如下:


有提示功能


方便快捷、效率高


不容易出错


本文结合多年实战经验和网络资源,梳理出开发环节最重要的命令清单,希望对你有帮助!


1、Elasticsearch REST URL 拆解

1.1 REST URL和选项概述

举个栗子:


POST products/_search?size=0

{

 "aggs": {

   "product_aggs": {

     "terms": {

       "field":"name.keyword"

     }

   }

 }

}

调用REST API很容易,除了实际的主机名/ IP和端口外,它还包含四个部分:


动词——REST调用的 GET,PUT,POST和DELETE部分。


在Kibana中,您可以直接指定这些名称,对于cURL,请使用-X选项。


对应示例中的:POST


路径——API和路径。


例如:/_cluster / health 或 /logstash-cron-2020.07.03/_mapping-路径的第一部分通常是索引名称,除非它以_开头。


对应示例中的:products/_search,其中products是索引。


参数——后面的各种选项?


例如?h或?v


对应示例中的:?size=0。参数设定部分。


正文——某些调用需要JSON正文(例如设置选项),并将包含在{}中


对应示例中的:检索语句部分。


1.2 常用选项

有一些通用选项适用于许多(不是全部)URL。这些是:


?help——帮助选项。


将在列表中提供 API 可用的字段,其中包含短名称和长名称、说明等。


举例:


GET _cat/indices?help

?h =-“ h”——使用上方“帮助”显示中的短名称或长名称指定要包括在结果中的字段。这些用逗号分隔,没有空格。


举例:


GET _cat/indices?h=docs.count,store.size

这样以后返回结果一头雾水,相当于 Excel 有 N 列字段,但没有表头一样,很痛苦!


?v——'v'在回复的顶部包括字段名称。


GET _cat/indices?h=docs.count,store.size&v

-v 参数的妙处主要体现在:加上了表头,直观交互呈现。


?s——'s'用于排序,使用列出的字段作为排序键。


如下所示:我们可能会看到节点列表。包括:返回字段名称,字段名称要显示并按名称name排序:


GET /_cat/nodes?v&h=heap.percent,diskUsedPercent,cpu,master,name&s=name

另外,Kibana 会将您的 Dev Tools 查询保存在 cookie 中。


有了上面的背景知识,下面的常见开发相关的常用命令清单看起来就相对容易了。


2、状态 & 统计相关命令清单

最有用的 API 调用通常与集群的运行状况,状态和统计信息有关,例如:


2.1 获取版本和集群名称等信息。

GET /

2.2 获取集群健康状态等信息,包括集群名称、节点数、数据节点数、分片等的一些统计信息。

GET /_cluster/health

2.3 获取节点列表信息。显示了堆内存、磁盘使用情况,CPU 、负载和主机角色。

用途:用来监视负载和磁盘使用情况以及主机角色。


GET /_cat/nodes?v&h=heap.percent,diskUsedPercent,cpu,load_1m,master,name&s=name

2.4 Index Level 索引层面健康

GET /_cluster/health?level=indices&pretty

2.5 Shard Level 分片层面健康

GET /_cluster/health?level=shards&pretty

2.6 获取索引,文档,缓存,段,节点等的集群统计信息的更深入概述。

用途:有助于基本故障排除。


GET /_cluster/stats

2.7 获取节点级别的更多统计信息,包括堆使用情况等。

GET /_nodes/stats

3、线程相关状态&统计命令清单

3.1 很长但有用的线程队列视图

GET /_cat/thread_pool?v&h=node_name,name,type,active,size,queue,queue_size,rejected,largest,completed,min,max&s=node_name,name

3.2 查看热点线程,用于排查谁在占用CPU资源等

GET /_nodes/hot_threads/

3.3 快速获取索引模式。

例如:所有这些logstash *前缀索引的文档总数的方法。


GET /_cat/count/logstash*?v

4、索引相关状态&统计命令清单

4.1 通配符索引列表获取

包含:大小,文档计数,状态等。


GET /_cat/indices/logstash*?v

4.2 找到size 最大的索引

GET /_cat/indices/logstash-*?v&h=index,ss&s=ss:desc

4.3 获取状态为黄色的索引

GET /_cat/indices?v&health=yellow

红色 red:至少一个主分片不可用。


黄色 yellow:至少一个副本分片不可用。


绿色 green:集群主、副本分片都可用,集群健康。


5、 设置相关清单

Elasticsearch中有许多设置,但最常见的是“集群”和“索引”级别。


5.1  集群设置

最基本的集群设置视图——显示非默认的持久性和瞬态设置信息。


GET /_cluster/settings

更大的列表视图——包括所有默认值,并使用平面视图使其更易于阅读。


GET /_cluster/settings?include_defaults=true&flat_settings=true

5.2 索引设置

获取指定索引的设置列表信息。


GET /logstash-cron-2020.08.03/_settings

获取索引的元信息、设置信息以及Mapping信息。


GET /logstash-cron-2020.08.03

6、 关闭&删除索引

6.1 关闭索引

支持单个或者模糊匹配多个索引。


POST /logstash-*-2020.03.*/_close

6.2 删除索引

支持单个或者模糊匹配多个


DELETE /logstash-*-2020.04.*

7、故障排查清单

之前运维清单有过陈述,开发也需要。


7.1 获取:已分配和未分配的分片。

GET /_cat/shards?v&h=n,index,shard,prirep,state,sto,sc,unassigned.reason,unassigned.details&s=sto,index

7.2 查看未分配的分片及原因

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

7.3 查看未分配的细节说明信息

GET /_cluster/allocation/explain

7.4 查看指定分片未分配的细节

GET /_cluster/alloGET /_cluster/allocation/explain

{ "index": "logstash-cloudtrail-2019.10.16", "shard": 0, "primary": true} cation/explain { "index": "logstash-cloudtrail-2019.10.16", "shard": 0, "primary": true}

7.5 下线节点

PUT _cluster/settings?pretty

{

 "transient": {

   "cluster.routing.allocation.exclude._ip": "10.0.0.1"

 }

}

8、模板清单

8.1 列举已定义的所有模板

GET /_cat/templates?v&s=order,name

8.2 列举指定名称的模板信息

GET /_template/logstash

9、快照&恢复

9.1 列出系统中配置的快照存储库。大多数其他API调用都需要这些名称。

GET /_snapshot

9.2 获取任何正在运行的快照的状态和统计信息

GET /_snapshot/_status

9.3 获取快照的有用信息

GET /_cat/snapshots/my_repository?v&h=id,status,start_time,duration,indicies,successful_shards,failed_shards,total_shards

10、 分片分配与恢复清单

10.1 分片分配查看

GET /_cat/allocation?v

10.2 分片恢复查看

GET /_cat/recovery?v

10.3 运行任务查看

GET /_cat/pending_tasks?v

10.4 清理缓存

POST /_cache/clear

小结

清单没有面面俱到,清单的目的只是梳理知识体系。


而基础知识的习得还是建议通过官方文档查看即可,前提:熟悉官方文档的目录结构,做到会查、快查,逐步掌握开发实战知识。


参考:


https://www.elkman.io/blog/useful-elasticsearch-api-urls


https://preview.mailerlite.com/u3c7e3/1490690490360665893/f2l9/


推荐:


干货 | Elasticsearch 运维实战常用命令清单


重磅 | 死磕 Elasticsearch 方法论认知清单(2020年五一更新版)

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
5月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
存储 运维 监控
超越传统模型:从零开始构建高效的日志分析平台——基于Elasticsearch的实战指南
【10月更文挑战第8天】随着互联网应用和微服务架构的普及,系统产生的日志数据量日益增长。有效地收集、存储、检索和分析这些日志对于监控系统健康状态、快速定位问题以及优化性能至关重要。Elasticsearch 作为一种分布式的搜索和分析引擎,以其强大的全文检索能力和实时数据分析能力成为日志处理的理想选择。
983 6
|
11月前
|
人工智能 自然语言处理 运维
让搜索引擎“更懂你”:AI × Elasticsearch MCP Server 开源实战
本文介绍基于Model Context Protocol (MCP)标准的Elasticsearch MCP Server,它为AI助手(如Claude、Cursor等)提供与Elasticsearch数据源交互的能力。文章涵盖MCP概念、Elasticsearch MCP Server的功能特性及实际应用场景,例如数据探索、开发辅助。通过自然语言处理,用户无需掌握复杂查询语法即可操作Elasticsearch,显著降低使用门槛并提升效率。项目开源地址:<https://github.com/awesimon/elasticsearch-mcp>,欢迎体验与反馈。
2734 1
|
存储 数据采集 数据处理
数据处理神器Elasticsearch_Pipeline:原理、配置与实战指南
数据处理神器Elasticsearch_Pipeline:原理、配置与实战指南
760 12
|
缓存 数据处理 数据安全/隐私保护
Elasticsearch索引状态管理实战指南
Elasticsearch索引状态管理实战指南
312 0
|
存储 索引
Elasticsearch索引之嵌套类型:深度剖析与实战应用
Elasticsearch索引之嵌套类型:深度剖析与实战应用
|
存储 JSON 搜索推荐
Springboot2.x整合ElasticSearch7.x实战(三)
Springboot2.x整合ElasticSearch7.x实战(三)
267 0
|
存储 自然语言处理 关系型数据库
Springboot2.x整合ElasticSearch7.x实战(二)
Springboot2.x整合ElasticSearch7.x实战(二)
259 0
|
搜索推荐 数据可视化 Java
Springboot2.x整合ElasticSearch7.x实战(一)
Springboot2.x整合ElasticSearch7.x实战(一)
227 0
|
自然语言处理 测试技术 网络安全
ElasticSearch7最新实战文档-附带logstash同步方案
ElasticSearch7最新实战文档-附带logstash同步方案
356 0