es常用curl命令

2023-11-04

【说明】仅记录实验室测试过程,不作为官方文档使用,可能会有很多地方未能验证,因此无法进行技术兜底,需使用方多加验证测试,涉及到高危需走变更。目前测试版本均为651及以前版本,命令样例基于安全模式,如果是在非安全模式下,将命令中的参数“--tlsv1.2 --negotiate -k -u : 去除,并将https修改为http即可。

端口:

EsMaster: 24148

EsNode1: 24100

EsNode2: 24102


 

_cluster命令   

查询集群状态命令:
curl -XGET -
–tlsv1.2 –negotiate -k -u : "https://ip:port/_cluster/health?pretty"

查询ES全局状态
curl -XGET –tlsv1.2 –negotiate -k -u : 'https://ip:port/_cluster/stats?pretty'

解释分片,查看分片状态

curl -XGET --negotiate -k -u : "https://127.0.0.1:24100/_cluster/allocation/explain?pretty" -H 'Content-Type:application/json' -d '{

    "index": "indexname",
    "shard": 17,
    "primary": true
}'

重新分配主分片

curl -XPOST --tlsv1.2 --negotiate -k -u : "https://127.0.0.1:24148/_cluster/reroute?pretty" -H 'Content-Type:application/json' -d '{

    "commands": [{

       "allocate_stale_primary": {

           "index": "index1",

           "shard": 2,

           "node": "EsNode1@189.39.172.103",

                        "accept_data_loss":true

 

       }

    }]

}'

 

 

_cat命令   

 


查询所有索引:
curl -XGET --tlsv1.2--negotiate -k -u : "https://ip:port/_cat/indices?pretty"

查询ES实例列表
curl -XGET --tlsv1.2 --negotiate -k -u : 'https://ip:port/_cat/nodes/?v'

查看_cat/nodes接口的帮助信息: 
curl -XGET --tlsv1.2 --negotiate -k -u : 'https://ip:port/_cat/nodes?help'

查询所有esnode的指定参数列的值,包括堆内存等
curl -XGET --tlsv1.2 --negotiate -k -u : 'https://ip:port/_cat/nodes?v&h=http,dt,du,dup,hm,hc,hp,fdm,fdc,fdp,cpu'

 

查询es集群是否健康
curl -XGET --tlsv1.2 --negotiate -k -u : 'https://ip:port/_cat/health?v'

查询es集群index的整体数据量
curl -XGET --tlsv1.2 --negotiate -k -u : 'https://ip:port/_cat/indices?v'

查询集群线程池使用情况
curl -XGET --tlsv1.2 --negotiate -k -u : 'https://ip:port/_cat/thread_pool?v'


查询集群bulk操作的线程数量
curl -XGET --tlsv1.2 --negotiate -k -u : 'https://ip:port/_cat/thread_pool/bulk?v'
curl -XGET --tlsv1.2 --negotiate -k -u : 'https://ip:port/_cat/thread_pool/bulk?v&h=node_name,name,active,queue,rejected,c'


查询主Master实例
curl -XGET --tlsv1.2 --negotiate -k -u : 'https://ip:port/_cat/master/?v'

查询每个实例上的分片个数,用于判断分片是否均匀
curl -XGET --tlsv1.2 --negotiate -k -u : 'https://ip:port/_cat/allocation?v'

查询_cat接口支持的所有的命令列表
curl -XGET --tlsv1.2 --negotiate -k -u : 'https://ip:port/_cat/'

查看分片未分配的原因
curl -XGET --tlsv1.2 --negotiate -k -u : "https://127.0.0.1:24100/_cat/shards?v&h=index,shard,prirep,state,unassigned.reason" 

 

 

_nodes命令   


查询指定ES实例的jvm参数:
curl -XGET –tlsv1.2 –negotiate -k -u : 'https://ip:port/_nodes/EsNode1*/stats/jvm?pretty'
curl -XGET –tlsv1.2 –negotiate -k -u : 'https://ip:port/_nodes/EsNode1@12.40.16.156/stats/jvm?pretty'

 

 

索引操作   


关闭索引
curl -XPOST --tlsv1.2 --negotiate -k -u : 'https://ip:port/my_index/_close?pretty'

打开索引
curl -XPOST --tlsv1.2  --negotiate -k -u : 'https://ip:port/my_index/_open?pretty'


删除索引,命令最后为索引名称,只有该索引的创建用户才可以删除索引
curl -XDELETE –tlsv1.2 –negotiate -k -u : 'https://ip:port/test_huawei'

查询索引mapping和settings

curl -XPOST--tlsv1.2  --negotiate -k -u : 'https://ip:port/my_index_name?pretty'

查询索引settings

curl -XPOST--tlsv1.2  --negotiate -k -u : 'https://ip:port/my_index_name/_settings?pretty'

修改索引刷新时间:

curl -XPUT --negotiate -k -u : 'https://ip:port/my_index/_settings?pretty' -H 'Content-Type: application/json' -d'{"refresh_interval" : "60s"}'

修改translog文件保留时长,默认为12小时

curl -XPUT --negotiate -k -u : 'https://ip:port/my_index/_settings?pretty' -H 'Content-Type: application/json' -d'{"index.translog.retention.age" : "30m"}'

设置索引副本:
curl -XPUT --negotiate -k -u : 'https://ip:port/my_index/_settings?pretty' -H 'Content-Type: application/json' -d'{"number_of_replicas" : 1}'

强制flush

curl -XPOST --negotiate --tlsv1.2 -k -u :  'https://ip:port/myindex/_flush'

强制refresh

curl -XPOST --negotiate --tlsv1.2 -k -u :  'https://ip:port/myindex/_refresh'

强制执行段合并

curl -XPOST --tlsv1.2 --negotiate -k -v -u : 'https://ip:httpport/myindex-001/_forcemerge?only_expunge_deletes=false&max_num_segments=1&flush=true&pretty'

 

配置控制段合并的refresh、merge线程数等
curl -XPUT  --tlsv1.2  --negotiate -k -u : "https://ip:port/my_index/_settings?pretty" -H 'Content-Type: application/json' -d'
{
"refresh_interval": "360s",
"merge":{
"scheduler":{
"max_merge_count" : "100",
"max_thread_count" : "1"
},
"policy":{
"segments_per_tier" : "100",
"floor_segment" : "1m",
"max_merged_segment" : "2g"
}
}
}'


设置索引的刷新时间和translog配置参数

注意:设置translog参数,必须先关闭索引,设置完成后再打开

*代表设置所有索引,如果要设置具体某个索引,可以将*替换为具体的索引名称

curl -XPUT --tlsv1.2 --negotiate -k -v -u : "https://ip:httpport/*/_settings" -H 'Content-Type: application/json' -d'
{
"index": {
"refresh_interval" : "60s",
"translog": {
"flush_threshold_size": "1GB",
"sync_interval": "120s",
"durability": "async"
}
}
}'


 

手动分片迁移操作

curl -XPOST --tlsv1.2 --negotiate -k -v -u :  'https://ip:httpport/_cluster/reroute?pretty' -H 'Content-Type:application/json' -d '{
"commands" : [{
"move" : {
"index" : "info-test", "shard" : 3,
"from_node" : "EsNode3@189.39.172.103",
"to_node" : "EsNode2@189.39.172.103"
}
}]
}'

 

限制每个索引在每个实例上的分片个数

curl -XPUT --tlsv1.2 --negotiate -k -v -u : 'https://http:httpport/myindex/_settings?pretty' -H 'Content-Type:application/json' -d '{"index.routing.allocation.total_shards_per_node":"2"}'
 

Shrink操作

1目前集群默认设置的是同一台主机不能存放同一主副本分片,需先在后台关闭该设置。防止分片自动均衡,关闭分片分配。

curl -XPUT 'http://127.0.0.1:24100/_cluster/settings?pretty'-H 'Content-Type:application/json' -d '{"transient":{"cluster.routing.allocation.same_shard.host":false,"cluster.routing.allocation.enable":"none"}}'

2将索引标记为只读,且所有的分片副本都迁移到实例名为EsNode1@IP的实例上。注意:所有的分片副本不指定索引的全部分片,无论主分片还是副本分片,任意一个就行。

curl -XPUT "http://127.0.0.1:24100/jjj.pm_20190224/_settings" -H 'Content-Type: application/json' -d'{

"settings": {   

"index.routing.allocation.require._name": "EsNode1@IP",

"index.blocks.write": true

  }

}'

3执行完上述命令之后,分片开始迁移,执行下列命令,查看分片是否迁移完成。

curl –XGET http://127.0.0.1:24100/_cat/shards?v | grep jjj.pm_20190224

4分片转移完成之后,查看集群是否green

curl -XGET http://127.0.0.1:24100/_cluster/health?pretty

5等待分片迁移完成之后,集群green后,我们就可以执行Shrink操作了。

curl -XPOST "http://127.0.0.1:24100/jjj.pm_20190224/_shrink/ jjj.pm_20190224_new" -H 'Content-Type: application/json' -d'{

"settings": {

"index.number_of_replicas": 1,

"index.number_of_shards": 41,

"index.codec": "best_compression"

}

}'

以上代码将创建含有一个41个主分片和一个副本分片的目的索引jjj.pm_20190224_new

6删除原来的索引

curl -XDELETE http://127.0.0.1:24100/jjj.pm_20190224?pretty

7并为新建的索引设置别名,别名设置为原来索引名称。

curl -XPOST 'http://127.0.0.1:24100/_aliases?pretty' -H 'Content-Type: application/json' -d' {

"actions":

[{"add":{"index": "jjj.pm_20190224_new","alias":"jjj.pm_20190224"}}]}'

8查看集群状态,green之后,还原参数。

curl -XPUT 'http://127.0.0.1:24100/_cluster/settings?pretty'-H 'Content-Type:application/json' -d

'{"transient":{"cluster.routing.allocation.same_shard.host":true,"cluster.routing.allocation.enable":"all"}}'

 

 

_template操作   


查看模板
curl -XGET –tlsv1.2 –negotiate -k -u : "https://ip:port/_template/template_1?pretty"

设置/修改模板
curl -XPUT –tlsv1.2 –negotiate -k -u : "https://ip:port/_template/template_1" -H 'Content-Type: application/json' -d '{ "template" : "*", "order" : 0, "settings" : { "number_of_shards" : 1 }, "mappings" : { "type1" : { "_source" : { "enabled" : false } } } }'

 

SQL插件常用用法   

curl -XPOST –tlsv1.2 –negotiate -k -u : 'https://ip:port/_sql?pretty' -H "Content-Type: application/json"  -d 'SELECT * FROM test_index'

如上所示,三个地方需要注意:

1.        SQL语句使用 ”-XPOST”

2.        Ip:port后需要跟 ”_sql”

3.        -d后直接跟SQL语句

全局查询:curl -XPOST –tlsv1.2 –negotiate -k -u : 'https://ip:port/_sql?pretty' -H "Content-Type: application/json"  -d 'SELECT * FROM test_index'

单关键字查询:curl -XPOST –tlsv1.2 –negotiate -k -u : 'https://ip:port/_sql?pretty' -H "Content-Type: application/json"  -d 'SELECT * FROM test_index where content="美国"'

多关键字查询:

curl -XPOST –tlsv1.2 –negotiate -k -u : 'https://ip:port/_sql?pretty' -H "Content-Type: application/json"  -d 'SELECT * FROM test_index where content="美国" and content="中国"'

curl -XPOST –tlsv1.2 –negotiate -k -u : 'https://ip:port/_sql?pretty' -H "Content-Type: application/json"  -d 'SELECT * FROM test_index where content="美国" or content="中国"'

单字段排序:

curl -XPOST –tlsv1.2 –negotiate -k -u : 'https://ip:port/_sql?pretty' -H "Content-Type: application/json"  -d 'SELECT * FROM test_index where content="美国" or content="中国" ORDER BY _score DESC'

多字段排序:

curl -XPOST –tlsv1.2 –negotiate -k -u : 'https://ip:port/_sql?pretty' -H "Content-Type: application/json"  -d 'SELECT * FROM test_index where (content1="美国" or content1="中国") ORDER BY content2 ASC, _score DESC'

模糊查询:

curl -XPOST –tlsv1.2 –negotiate -k -u : 'https://ip:port/_sql?pretty' -H "Content-Type: application/json"  -d 'SELECT * FROM test_index where content1 like "喀*湖"'

限制输出个数:

curl -XPOST –tlsv1.2 –negotiate -k -u : 'https://ip:port/_sql?pretty' -H "Content-Type: application/json"  -d 'SELECT * FROM test_index limit 2' 

 

解释分片命令   

curl -XGET --negotiate -k -u : "https://127.0.0.1:24100/_cluster/allocation/explain?pretty" -d '{
"index": "indexname",
"shard": 17,
"primary": true
}'

 

bulk操作   

读取文件夹下的文件,通过bulk写入:

for file_each in `ls`
do
curl -XPOST 
–tlsv1.2 --negotiate -k -v -u : 'https://127.0.0.1:24100/_bulk?pretty' -H 'Content-Type:application/json' --data-binary @${file_each}
done

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

es常用curl命令 的相关文章

随机推荐

  • DevOps B站学习版(一)

    学习地址 01 DevOps的诞生 哔哩哔哩 bilibilihttps www bilibili com video BV1Pt4y1H7Zq p 1 vd source 1f09c23f556b3d6a9b7706f8db12fa54
  • 人类的行为与程序计算

    胡言乱语 引子 人类从出生伊始都在面临着生活中的种种问题 人类无时无刻不在进行着问题的解决过程 程序从设计之初也是用来解决生活中特定问题的 那么人类行为与程序计算理论之间又有什么相似性呢 人类 人类所面临的问题 人类解决问题的过程 人类解决
  • vue 按钮 路由

    APP vue 在已有的按钮上加上路由功能 这里的按钮和布局容器使用了 elementui 的但无关原理 按下按钮即可跳转页面
  • 雷达测高知识点总结

    1 激光和雷达的区别 雷达 radar radio detection and ranging 无线电探测和测距 雷达波段 雷达发射电波的频率范围 大多数雷达工作在超短波及微波波段 其频率范围在30 300000兆赫 相应波长为1mm 10
  • 利用PyTorch自己动手从零实现YOLOv3(详细注释)

    学习一个算法最好的方式就是自己尝试着去实现它 因此 在这片博文里面 我会为大家讲解如何用PyTorch从零开始实现一个YOLOv3目标检测模型 参考源码请在这里下载 模型实现总共会分为以下六部分 一 配置文件以及解析 二 搭建YOLO模型框
  • 哈希结构(图文详解)【哈希表,哈希桶,位图,布隆过滤器】

    哈希结构 哈希概念 常见的K V结构 实现了元素关键码与元素值的映射关系 但没有实现元素关键值与元素存储位置的映射关系 在遍历过程中 一般的顺序表或搜索二叉树要进行关键值的多次比较 其中顺序表的时间复杂度为O n 二叉搜索树的时间复杂度O
  • phantomjs实现html生成pdf

    phantomjs实现html生成pdf 实现比较简单 同时能够实现对页面的完全展示成pdf 但是生成的时间比较长且并发很差 很容易直接挂掉 以下是实现 1 下载phantomjs 2 1 1 windows并解压到本地路劲 2 实现jav
  • php接口post数据接收不到参数原因

    1 检查头信息content type是不是为 content type application x www form urlencoded 这种传输是以表单的方式提交数据php使用 POST方式接受 2 如果头信息content type
  • python与mongodb交互-->pymongo

    from pymongo import MongoClient 创建数据库连接对象 client MongoClient ip 27017 选择一个数据库 db client admin db authenticate python pyt
  • c++学习——类和对象

    类和对象 类和对象的基本概念 类的封装 尽量把成员属性设置为私有的 小练习 结构体和类的区别 圆的周长类案例 学生类的案例 汽车案例 立方体案例 点和圆案例 类和对象的基本概念 类是自定义数据类型 是C语言的结构体进化而成的 对象是类实例化
  • 硬件笔记(一)——DCDC典型电路分析

    此次小记分析的电路为SIM7600技术手册的推荐外部电源电路 LM2596内部包含150KHZ振荡器 输入电压范围最高可达40V 4 5V 40V 最高可提供3A的直流负载电流 输出电压可调范围1 23V 37V 现对此电路进行分析 1 D
  • 程序获取

    程序获取 机器学习 深度学习程序和数据获取方式 目录 程序获取 机器学习 深度学习程序和数据获取方式 程序获取方式1 程序获取方式2 程序获取方式3 程序获取方式4 程序获取方式5 程序获取方式6 程序获取方式1 私信博主或者博客底部联系博
  • jmeter线程组内的接口顺序执行解决办法

    一 压力测试场景分析 测试人员在使用jmeter对一个场景进行压力测试 在一个线程组内有多个接口时 测试人员想要测试在特定的时间段内一直循环该线程以测试服务器压力 但是jmeter在run线程组的时候 经常不会按照该线程组内的接口顺序执行
  • Ubuntu torch.cuda.is_available() 返回 False情况

    如果Ubuntu20 04 出现torch cuda is available 返回 False情况 解决方法 重新安装Pytorch Ubuntu20 04 CUDA 11 4 Pytorch配置安装 conda conda create
  • Hibernate 自动创建表

    前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住分享一下给大家 点击跳转到教程 1 在 hibernate cfg xml 添加这句话 可以自动生成数据表
  • 开放集识别的最新进展总结(源于Recent Advances in Open Set Recognition: A Survey)

    摘要 在现实的识别 分类任务中 由于受到各种客观因素的限制 在训练一个识别器或分类器摘 0 摘要 原因与场景 在现实的识别 分类任务中 训练模型的时候可能并没有所有类别的训练集 因此 这样训练出来的模型在没有出现过的类出现时 一般会失效 解
  • 中国科学院大学工程管理与信息技术学院 2014年招收以下八个领域在职工程硕...

    中国科学院大学工程管理与信息技术学院2014年招收以下八个领域在职工程硕士 欢迎广大考生报考 一 专业领域介绍 招生领域 研究方向 学费 报考条件 学位 证书 学习方式
  • 数据结构与算法——栈的实现及模拟

    目录 一 栈的原理 二 栈的实现 1 栈的定义 2 栈的初始化 3 入栈 4 出栈 5 获取栈顶元素 6 栈的大小 7 判断栈是否为空 8 栈的销毁 一 栈的原理 堆栈 英语 stack 又称为栈或堆叠 是计算机科学中的一种抽象资料类型 只
  • Kafka核心设计与实践原理总结:进阶篇

    kafka作为当前热门的分布式消息队列 具有高性能 持久化 多副本备份 横向扩展能力 我学习了 深入理解Kafka 核心设计与实践原理总结 一书后 对其中主要的知识点进行了总结 便于理解和掌握kafka的原理和应用 在这里分享出来 希望也能
  • es常用curl命令

    说明 仅记录实验室测试过程 不作为官方文档使用 可能会有很多地方未能验证 因此无法进行技术兜底 需使用方多加验证测试 涉及到高危需走变更 目前测试版本均为651及以前版本 命令样例基于安全模式 如果是在非安全模式下 将命令中的参数 tlsv