elastic常用api
elasticsearch运维常用API
查看集群状态
查询集群状态命令:
curl -XGET "http://ip:port/_cluster/health?pretty"
# ?pretty json打印结果
查询集群JVM状态
curl -XGET "http://ip:port/_nodes/stats/jvm?pretty" #查看具体某一个
curl -XGET "http://ip:port/_nodes/nodeName/stats/jvm?pretty"
查询Es全局状态:
curl -XGET "http://ip:port/_cluster/stats?pretty"
查看集群分配情况
curl -XGET "http://ip:port/_cluster/allocation/explain?pretty"
查询集群设置
curl -XGET "http://ip:port/_cluster/settings?pretty"
查询所有索引
# ?v 输出统计信息表头
curl -XGET "http://ip:port/_cat/indices?v"
# 如果通配符过滤
curl -XGET "http://ip:port/_cat/indices/*2022*?v"
查看集群文档总数
curl -XGET "http://ip:port/_cat/count?v"
# 仅输入`_cat/` 会返回所有可输入命令。
查看集群别名组
curl -XGET "http://ip:port/_cat/aliases"
查看当前集群索引分片信息
curl -XGET "http://ip:port/_cat/shards?v"
# 注:查看某一个索引可用shards/索引名?v
查看集群实例存储详细信息
curl -XGET "http://ip:port/_cat/allocation?v"
查看当前集群的所有实例
curl -XGET "http://ip:port/_cat/nodes?v" - nodes.role角色
c : cold node
d : data node
f : frozen node
h : hot node
i : ingest node
l : machine learning node
m : master eligible node
r : remote cluster client node
s : content node
t : transform node
v : voting-only node
w : warm node
查看某索引分片转移进度
curl -XGET "http://ip:port/_cat/recovery/索引名?v"
查看当前集群等待任务
curl -XGET "http://ip:port/_cat/pending_tasks?v"
查看集群写入线程池任务
curl -XGET "http://ip:port/_cat/thread_pool/bulk?v"
查看集群查询线程池任务
curl -XGET "http://ip:port/_cat/thread_pool/search?v"
查看分片未分配的原因
curl -XGET "http://ip:port/_cat/shards?v&h=index,shard,prirep,state,node,unassigned.reason" | grep UNASSIGNED
查看集群所有的默认配置
curl -XGET 'http://ip:port/cluster/settings?pretty&include_defaults=true&filter_path=**.index'
集群相关操作
设置集群分片恢复参数
curl --request PUT \
--url http://ip:port/_cluster/settings \
--header 'content-type: application/json' \
--data '{
"transient": {
"cluster.routing.allocation.node_initial_primaries_recoveries": 60,
"cluster.routing.allocation.node_concurrent_recoveries": 30,
"cluster.routing.allocation.cluster_concurrent_rebalance": 30
}
}' # 或者
curl -XPUT "http://ip:port/_cluster/settings" -H 'Content-Type: application/json' -d' { "transient": { "cluster.routing.allocation.exclude._name": "EsNode2@ip" } }'
根据实例名称使EsNodeX实例下线
curl --request PUT \
--url http://ip:port/_cluster/settings \
--header 'content-type: application/json' \
--data '{
"transient": {
"cluster.routing.allocation.exclude._name": "EsNode2@ip"
}
}' # 或者
curl -XPUT "http://ip:port/_cluster/settings" -H 'Content-Type: application/json' -d' { "transient": { "cluster.routing.allocation.exclude._name": "EsNode2@ip" } }'
根据ip使ES数据节点下线:
curl --request PUT \
--url http://ip:port/_cluster/settings \
--header 'content-type: application/json' \
--data '{
"transient": {
"cluster.routing.allocation.exclude._ip": "ip1,ip2,ip3"
}
}'
# 或者
curl -XPUT "http://ip:port/_cluster/settings" -H 'Content-Type: application/json' -d' { "transient": { "cluster.routing.allocation.exclude._ip": "ip1,ip2,ip3" } }'
设置分片恢复过程中的最大带宽速度:
curl --request PUT \
--url http:/ip:port/_cluster/settings \
--header 'content-type: application/json' \
--data '{
"transient": {
"indices.recovery.max_bytes_per_sec": "500mb"
}
}' # 或者
curl -XPUT "http://ip:port/_cluster/settings" -H 'Content-Type: application/json' -d'{ "transient":{ "indices.recovery.max_bytes_per_sec":"500mb" }}'
重新分配索引到 分片数为空的节点上(恢复数据)
curl --request PUT \
--url http://47.93.55.229:8118/_cluster/reroute \
--header 'content-type: application/json' \
--data '{
"commands": [
{
"allocate_empty_primary": {
"index": "indexname",
"shard": 2,
"node": "EsNode1@81.20.5.24",
"accept_data_loss": true
}
}
]
}' # 或者
curl -XPOST "http://ip:port/_cluster/reroute?pretty" -H 'Content-Type:application/json' -d '{ "commands": [{ "allocate_empty_primary": { "index": "indexname", "shard": 2, "node": "EsNode1@81.20.5.24", "accept_data_loss":true } }]}'
重新分配索引到 副本分片所在的节点上(恢复数据)
curl --request PUT \
--url http://47.93.55.229:8118/_cluster/reroute \
--header 'content-type: application/json' \
--data '{
"commands": [
{
"allocate_stale_primary": {
"index": "indexname",
"shard": 2,
"node": "EsNode1@81.20.5.24",
"accept_data_loss": true
}
}
]
}' # 或者
curl -XPOST "http://ip:port/_cluster/reroute?pretty" -H 'Content-Type:application/json' -d '{ "commands": [{ "allocate_stale_primary": { "index": "indexname", "shard": 2, "node": "EsNode1@81.20.5.24", "accept_data_loss":true }
清理ES所有缓存
curl -XPOST "http://ip:port/_cache/clear"
关闭分片自动平衡
curl -XPUT "http://ip:port/_cluster/settings" -H 'Content-Type:application/json' -d '{ "transient":{ "cluster.routing.rebalance.enable":"none" }}'
手动刷新未分配的分片
curl -XPOST "http://ip:port/_cluster/reroute?retry_failed=true"
关闭索引只读状态
curl -XPUT 'http://127.0.0.1:9200/_all/_settings' -H "Content-Type: application/json" -d '{"index.blocks.read_only_allow_delete": false}'
查询索引状态、信息
查看字符串分词情况
# 查看分词器的分词效果
curl --request POST \
--url http://47.93.55.229:8118/_analyze \
--header 'content-type: application/json' \
--data '{"analyzer":"standard","text":"这是一个测试"}'
# 查看索引某个字段的分词效果
curl --request POST \
--url http://47.93.55.229:8118/indexName/_analyze \
--header 'content-type: application/json' \
--data '{"field": "title","text": "这是一个测试"}'
查看具体文档中某个字段的分、词情况
curl -XGET "http://ip:port/index/type/id/_termvectors?fields=${field}""
查询索引mapping和setting
# 查询mapping和setting
curl -XGET 'http://ip:port/my_index_name?pretty' #查询setting
curl -XGET 'http://ip:port/my_index_name/_settings?pretty' #查询mapping
curl -XGET 'http://ip:port/my_index_name/_mappings?pretty'
获取索引所有的配置,包括默认的
curl -XGET 'http://ip:port/_all/_settings?include_defaults=true'
索引相关操作
关闭索引
curl -XPOST 'http://ip:port/my_index/_close?pretty'
开启索引
curl -XPOST 'http://ip:port/my_index/_open?pretty'
修改索引刷新时间refresh_interval
curl -XPUT 'http://ip:port/my_index/_settings?pretty' -H 'Content-Type: application/json' -d'{"refresh_interval" : "60s"}'
修改translog文件保留时长,默认为12小时
curl -XPUT 'http://ip:port/my_index/_settings?pretty' -H 'Content-Type: application/json' -d'{"index.translog.retention.age" : "30m"}'
设置索引副本:大量写数据,刷数据,可以临时关闭副本,写完再开启
curl -XPUT 'http://ip:port/my_index/_settings?pretty' -H 'Content-Type: application/json' -d'{"number_of_replicas" : 1}'
执行refresh,将内存数据刷新到磁盘缓存
curl -XPOST 'http://ip:port/myindex/_refresh'
执行flush,将磁盘缓存刷新到文件系统
curl -XPOST 'https://ip:port/myindex/_flush'
执行synced flush,生成syncid
curl -XPOST 'http://ip:port/_flush/synced'
强制执行段合并
curl -XPOST 'http://ip:port/myindex/_forcemerge?only_expunge_deletes=false&max_num_segments=1&flush=true&pretty'
设置索引在每个esnode上的分片个数
curl -XPUT 'http://ip:port/myindex/_settings?pretty' -H 'Content-Type: application/json' -d'{"index.routing.allocation.total_shards_per_node" : "2"}'
配置控制段合并的refresh、merge线程数等
curl --request PUT \
--url 'http://ip:port8/my_index/_settings?pretty=' \
--header 'content-type: application/json' \
--data '{
"refresh_interval": "60s",
"merge": {
"scheduler": {
"max_merge_count": "100",
"max_thread_count": "1"
},
"policy": {
"segments_per_tier": "100",
"floor_segment": "1m",
"max_merged_segment": "2g"
}
}
}' # 或者
curl -XPUT "http://ip:port/my_index/_settings?pretty" -H 'Content-Type: application/json' -d'{"refresh_interval": "60s","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 --request PUT \
--url 'http://47.93.55.229:8118/my_index/_settings?pretty=' \
--header 'content-type: application/json' \
--data '{
"index": {
"refresh_interval": "60s",
"translog": {
"flush_threshold_size": "1GB",
"sync_interval": "120s",
"durability": "async"
}
}
}' # 或者 curl -XPUT "http://ip:httpport/*/_settings" -H 'Content-Type: application/json' -d'{ "index":{ "refresh_interval" : "60s","translog":{ "flush_threshold_size": "1GB", "sync_interval": "120s", "durability": "async"}}}'
elastic常用api的更多相关文章
- Elasticsearch-02-入门:集群、节点、分片、索引及常用API
2. 基础入门 2.1 重要概念 2.1.1 集群和节点 1)cluster Elasticsearch集群是由一个或多个节点组成,通过其集群名称来进行唯一标识.节点在搜索到集群之后,通过判断自身的 ...
- html5 canvas常用api总结(一)
1.监听浏览器加载事件. window.addEventListener("load",eventWindowLoaded,false); load事件在html页面加载结束时发生 ...
- compass General 常用api学习[Sass和compass学习笔记]
compass 中一些常用api 包括一些浏览器hack @import "compass/utilities/general" Clearfix Clearfix 是用来清除浮动 ...
- java基础3.0:Java常用API
本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常 ...
- C++ 中超类化和子类化常用API
在windows平台上,使用C++实现子类化和超类化常用的API并不多,由于这些API函数的详解和使用方法,网上一大把.本文仅作为笔记,简单的记录一下. 子类化:SetWindowLong,GetWi ...
- node.js整理 02文件操作-常用API
NodeJS不仅能做网络编程,而且能够操作文件. 拷贝 小文件拷贝 var fs = require('fs'); function copy(src, dst) { fs.writeFileSync ...
- js的常用api
JavaScript常用API总结 原创 2016-10-02 story JavaScript 下面是我整理的一些JavaScript常用的API清单. 目录 元素查找 class操作 节点操作 属 ...
- JS操作DOM常用API总结
<JS高程>中的DOM部分写的有些繁琐,还没勇气整理,直到看到了这篇博文 Javascript操作DOM常用API总结,顿时有了一种居高临下,一览全局的感觉.不过有时间还是得自己把书里面的 ...
- request对象常用API 获取请求参数的值 request应用 MVC设计模式
1 request对象常用API 1)表示web浏览器向web服务端的请求 2)url表示访问web应用的完整路径:http://localhost:8080/day06/Demo1 ...
- 【OpenGL游戏开发之二】OpenGL常用API
OpenGL常用API 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数.它采用C语言风格,提供大量的函数来进行图形的处理和显示.OpenGL库函数的命名方式非常有规律.所有OpenGL ...
随机推荐
- Solution -「HDU 3507」Print Article
Description Link. 给出 \(N\) 个单词,每个单词有个非负权值 \(C_{i}\),现要将它们分成连续的若干段,每段的代价为此段单词的权值和,还要加一个常数 \(M\),即 \(( ...
- 简化 Go 开发:使用强大的工具提高生产力
作为 Go 开发人员,应该都知道维持简洁高效开发工作流程的重要性.为了提高工作效率和代码质量,简化开发流程并自动执行重复性任务至关重要.在本文中,我们将探讨一些强大的工具和技术,它们将简化 Go 开发 ...
- 【Mac2021版Intel芯片下载】 - Intel芯片推荐安装
[Mac2021版Intel芯片下载] - Intel芯片推荐安装 往下拉有安装图文教程一.下载提示1请点击图标进行下载 ●每个软件下方均标注了该软件的用途,请注意查看: ●如果点击无反应,请换一个浏 ...
- Intervals 题解
Intervals 题目大意 给定 \(m\) 条形如 \((l_i,r_i,a_i)\) 的规则,你需要求出一个长为 \(n\) 的分数最大的 01 串的分数,其中一个 01 串 \(A\) 的分数 ...
- 【matplotlib 实战】--气泡图
气泡图是一种多变量的统计图表,可以看作是散点图的变形.与散点图不同的是,每一个气泡都表示三个维度的数据,除了像散点图一样有X,Y轴,气泡的大小可以表示另一个维度的数据.例如,x轴表示产品销量,y轴表示 ...
- 从输入URL到页面加载完都发生了什么
1.浏览器的地址栏输入URL并按下回车. 2.浏览器查找当前URL是否存在缓存,并比较缓存是否过期. 3.DNS解析URL对应的IP. 4.根据IP建立TCP连接(三次握手). 5.HTTP发起请求. ...
- 虹科分享 | 一起聊聊Redis企业版数据库与【微服务误解】那些事儿!
如今,关于微服务依然存在许多误解,企业盲目追求这种炫酷技术并不可取.同时,这种盲目行为对于希望用微服务来有效解决问题的公司很不利.不是说任何特定的技术都是缺乏实际价值的,如微服务.Kubernetes ...
- java 处理常量字符串过长 & springboot 项目读取 resouces 文件夹下的文件内容
长字符串起因 项目里面有一长串的加密字符串(最长的万多个字符),需要拼接作为参数发送给第三方. 如果我们使用 枚举 定义的话,idea 编译的时候就会出现编译报错 Error: java:常量字符串过 ...
- 彻底搞懂CAP理论(电商系统)
1.理解CAP CAP是 Consistency.Availability.Partition tolerance三个词语的缩写,分别表示一致性.可用性.分区容忍性. 下边我们分别来解释: 为了方便对 ...
- 小测试:HashSet可以插入重复的元素吗?
Set的定义是一群不重复的元素的集合容器.也就是说,只要使用Set组件,应该是要保证相同的数据只能写入一份,要么报错,要么忽略.当然一般是直接忽略. 如题,HashSet是Set的一种实现,自然也符合 ...