【说明】仅记录实验室测试过程,不作为官方文档使用,可能会有很多地方未能验证,因此无法进行技术兜底,需使用方多加验证测试,涉及到高危需走变更。目前测试版本均为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

es常用curl命令相关推荐

  1. ES 常用查询命令汇总

    ES 常用查询命令汇总 ES 常用查询命令汇总 一._cat操作 _cat系列提供了一系列查询elasticsearch集群状态的接口.你可以通过执行 curl -XGET localhost:920 ...

  2. windows下使用curl以及常用curl命令

    什么是curl命令 curl是利用URL语法在命令行方式下工作的开源文件传输工具.它被广泛应用在Unix.多种Linux发行版中,并且有DOS和Win32.Win64下的移植版本. 如何在window ...

  3. 最常用的CURL命令大全

    为什么80%的码农都做不了架构师?>>>    日期:2012-6-10  来源:GBin1.com cURL是 一个非常实用的命令行工具,可以有效的帮助你处理URL相关操作和数据传 ...

  4. Docker命令和问题解决、ES常用操作

    总结一些日常使用的Docker命令和遇到问题的解决方法,还有ES的一些常用语句,便于提高日常工作中是Docker和ES时提供工效率. 一.Docker常用语句和问题解决 1.1什么是Docker Do ...

  5. curl命令常用参数

    curl命令常用参数 curl简介 常用方法 将远程文件下载到本地-o并指定名称 指定请求方式-X 显示响应结果-v 携带用户名/密码-u 携带请求头-H 查看服务端响应头 -i 只显示http re ...

  6. [svc]linux常用手头命令-md版-2017年11月12日 12:31:56

    相关代码 curl命令-网站如果3次不是200或301则报警 curl -o /dev/null -s -w "%{http_code}" baidu.com -k/--insec ...

  7. [svc]linux常用手头命令-md版

    相关代码 centos7修改网卡名字 net.ifnames=0 biosdevname=0 man手册中文 参考:http://www.kernel.org/pub/linux/docs/man-p ...

  8. 常用Linux命令总结

    常用Linux命令总结 2013-12-08 压缩为gz格式 gzip error_2018082217.log 解压gz格式 gzip -d error_2018082217.log.gz 不解压来 ...

  9. curl 命令行下载工具使用方法小结

    获取curl curl 命令行下载工具 curl的官方网站为:    http://curl.haxx.se    官方下载页面为:http://curl.haxx.se/download.html ...

最新文章

  1. 程序员效率低下的35个坏习惯
  2. SQL Server 2012 复制(发布订阅的研究)
  3. 《社交网站界面设计(原书第2版)》——2.10 自我反省式的出错信息
  4. 【数据结构与算法】之深入解析二叉树的算法实现和递归套路深度实践
  5. 爱情麻辣烫防骗子—骗子谎称学生出事让家长汇款
  6. ssh登录服务器提示错误no hostkey alg
  7. 李楠谈小米MIX Alpha:卖19999元还是不赚钱
  8. cookielifetime php_PHP session有效期session.gc_maxlifetime的设置方法
  9. python plt 色卡
  10. Java TCP协议传输
  11. Quora 用了哪些技术 ?(zz)
  12. python闭包有什么作用_闭包在实际开发中有什么用?
  13. CSS: 前端的视差滚动,写出看起来高逼格的网页效果
  14. talfta---动态故障树分析软件产品介绍
  15. OpenGL GLM 环境配置
  16. kubeadm搭建k8s集群
  17. C++ 多态(2): 纯虚函数, 抽象类和接口类
  18. BSCI认证培训,BSCI验厂费用最终需要和审核机构来确认
  19. Android Studio打造一个小说阅读App
  20. ESP32-CAM+PIR传感器=动作抓拍监控

热门文章

  1. 机器学习:朴素贝叶斯分类器代码实现,决策函数非向量化方式
  2. 分布式唯一ID生成器
  3. CodeForces 1096D(线性dp)
  4. 11个顶级 JavaScript 日历插件
  5. sso和oauth2.0的简单了解学习
  6. Python: Socket网络编程,多线程处理小Demo
  7. 从菜鸟成为数据科学家的养成方案
  8. 10.22 tcpdump:监听网络流量
  9. linux 两个驱动 竞争,Linux设备驱动第五章(并发和竞争)读书笔记(国外英文资料).doc...
  10. java 绘图 渐变_如何在Java 2D中创建渐变绘画?