前言
本文基于elasticsearch7.3.0版本
Cat命令
aliases
显示别名,过滤器,路由信息
GET _cat/aliases?v
alias index filter routing.index routing.search is_write_index
goods_order goods_order_2020-01-25 - - - -
返回字段 | 原文 | 含义 |
---|---|---|
alias | alias name | 别名 |
index | index alias points to | 索引别名指向 |
filter | filter | 过滤器 |
routing.index | index routing | 索引路由 |
routing.search | search routing | 搜索路由 |
is_write_index | write index | 写索引 |
allocation
显示每个节点分片数量、占用空间
GET _cat/allocation?v
shards disk.indices disk.used disk.avail disk.total disk.percent host ip node
70 431.6mb 8.9gb 130.2gb 139.2gb 6 10.61.149.206 10.61.149.206 10.61.149.206
70 442mb 9gb 130.1gb 139.2gb 6 10.61.149.199 10.61.149.199 10.61.149.199
返回字段 | 原文 | 含义 |
---|---|---|
shards | number of shards on node | 节点承载的分片数量 |
disk.indices | disk used by ES indices | 索引占用的空间大小 |
disk.used | disk used (total, not just ES) | 节点所在机器已使用的磁盘空间大下 |
disk.avail | disk available | 节点可用空间大小 |
disk.total | total capacity of all volumes | 节点总空间大小 |
disk.percent | percent disk used | 节点磁盘占用百分比 |
host | host of node | 节点host |
ip | ip of node | 节点ip |
node | name of node | 节点名称 |
count
显示索引文档的数量
GET _cat/count?v
epoch timestamp count
1585051390 12:03:10 2815367
返回字段 | 原文 | 含义 |
---|---|---|
epoch | seconds since 1970-01-01 00:00:00 | 自标准时间(1970-01-01 00:00:00)以来的秒数 |
timestamp | time in HH:MM:SS | 时分秒,utc时区 |
count | the document count | 文档总数 |
health
查看集群健康状况
GET _cat/health?v
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1585051499 12:04:59 order-common green 2 2 140 136 0 0 0 0 - 100.0%
返回字段 | 原文 | 含义 |
---|---|---|
epoch | seconds since 1970-01-01 00:00:00 | 自标准时间(1970-01-01 00:00:00)以来的秒数 |
timestamp | time in HH:MM:SS | 时分秒,utc时区 |
cluster | cluster name | 集群名称 |
status | health status | 集群状态 |
node.total | total number of nodes | 节点总数 |
node.data | number of nodes that can store data | 数据节点总数 |
shards | total number of shards | 分片总数 |
pri | number of primary shards | 主分片总数 |
relo | number of relocating nodes | 复制节点总数 |
init | number of initializing nodes | 初始化节点总数 |
unassign | number of unassigned shards | 未分配分片总数 |
pending_tasks | number of pending tasks | 待定任务总数 |
max_task_wait_time | wait time of longest task pending | 等待最长任务的等待时间 |
active_shards_percent | active number of shards in percent | 活动分片百分比 |
indices
查看索引信息
GET _cat/indices?v
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open goods_order_2020-02-24 A4Q8pyv1QR2wfw5jmqQQuw 2 0 98187 75798 15.5mb 15.5mb
返回字段 | 原文 | 含义 |
---|---|---|
health | current health status | 索引健康状态 |
status | open/close status | 索引的开启状态 |
index | index name | 索引名称 |
uuid | index uuid | 索引uuid |
pri | number of primary shards | 索引主分片数 |
rep | number of replica shards | 索引副本分片数量 |
docs.count | available docs | 索引中文档总数 |
docs.deleted | deleted docs | 索引中删除状态的文档 |
store.size | store size of primaries & replicas | 主分片+副本分分片的大小 |
pri.store.size | store size of primaries | 主分片的大小 |
master
显示master节点信息
GET _cat/master?v
id host ip node
hgbRZIBNSoyCcb3E15dlNA 10.61.149.199 10.61.149.199 10.61.149.199
返回字段 | 原文 | 含义 |
---|---|---|
id | node id | 节点id |
host | host name | host |
ip | ip address | ip |
node | node name | 节点名称 |
nodeattrs
显示node节点属性
GET _cat/nodeattrs?v
node host ip attr value
10.61.149.199 10.61.149.199 10.61.149.199 ml.machine_memory 25112244224
10.61.149.199 10.61.149.199 10.61.149.199 ml.max_open_jobs 20
10.61.149.199 10.61.149.199 10.61.149.199 xpack.installed true
10.61.149.206 10.61.149.206 10.61.149.206 ml.machine_memory 25112244224
10.61.149.206 10.61.149.206 10.61.149.206 ml.max_open_jobs 20
10.61.149.206 10.61.149.206 10.61.149.206 xpack.installed true
返回字段 | 原文 | 含义 |
---|---|---|
node | node name | 节点名称 |
host | host name | host |
ip | ip address | ip |
attr | attribute description | 属性描述 |
value | attribute value | 属性值 |
nodes
显示node节点信息
GET _cat/nodes?v
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
10.61.149.206 32 69 0 0.00 0.02 0.05 dilm - 10.61.149.206
10.61.149.199 54 67 0 0.00 0.01 0.05 dilm * 10.61.149.199
返回字段 | 原文 | 含义 |
---|---|---|
id | unique node id | ip |
heap.percent | used heap | 堆内存占用百分比 |
ram.percent | used machine memory ratio | 内存占用百分比 |
cpu | recent cpu | CPU占用百分比 |
load_1m | 1m load avg | 1分钟的系统负载 |
load_5m | 5m load avg | 5分钟的系统负载 |
load_15m | 15m load avg | 15分钟的系统负载 |
node.role | m:master eligible node, d:data node, i:ingest node, -:coordinating node only | node节点的角色 |
master | *:current master | 是否是master节点 |
name | node name | 节点名称 |
pending_tasks
显示正在等待的任务
GET _cat/pending_tasks?v
insertOrder timeInQueue priority source
返回字段 | 原文 | 含义 |
---|---|---|
insertOrder | task insertion order | 任务插入顺序 |
timeInQueue | how long task has been in queue | 任务排队了多长时间 |
priority | task priority | 任务优先级 |
source | task source | 任务源 |
plugins
显示节点上的插件
GET _cat/plugins?v
name component version
10.25.237.34 analysis-ik 7.4.2
10.25.237.34 analysis-pinyin 7.4.2
10.25.237.33 analysis-ik 7.4.2
10.25.237.33 analysis-pinyin 7.4.2
返回字段 | 原文 | 含义 |
---|---|---|
name | node name | 节点名称 |
component | component | 插件名称 |
version | component version | 插件版本 |
recovery
显示正在进行和先前完成的索引碎片恢复的视图
GET _cat/recovery?v
index shard time type stage source_host source_node target_host target_node repository snapshot files files_recovered files_percent files_total bytes bytes_recovered bytes_percent bytes_total translog_ops translog_ops_recovered translog_ops_percent
goods_order_2020-02-24 0 25ms existing_store done n/a n/a 10.25.237.34 10.25.237.34 n/a n/a 0 0 100.0% 24 0 0 100.0% 8069221 0 0 100.0%
返回字段 | 原文 | 含义 |
---|---|---|
index | index name | 索引名称 |
shard | shard name | 分片名称 |
time | recovery time | 恢复时间 |
type | recovery type | 恢复类型 |
stage | recovery stage | 恢复阶段 |
source_host | source host | 源主机 |
source_node | source node name | 源节点名称 |
target_host | target host | 目标主机 |
target_node | target node name | 目标节点名称 |
repository | repository | 仓库 |
snapshot | snapshot | 快照 |
files | number of files to recover | 要恢复的文件数 |
files_recovered | files recovered | 已恢复的文件数 |
files_percent | percent of files recovered | 恢复文件百分比 |
files_total | total number of files | 文件总数 |
bytes | number of bytes to recover | 要恢复的字节数 |
bytes_recovered | bytes recovered | 已恢复的字节数 |
bytes_percent | percent of bytes recovered | 恢复字节百分比 |
bytes_total | total number of bytes | 字节总数 |
translog_ops | number of translog ops to recover | 要恢复的translog操作数 |
translog_ops_recovered | translog ops recovered | 已恢复的translog操作数 |
translog_ops_percent | percent of translog ops recovered | 恢复的translog操作的百分比 |
segments
显示分片中的分段信息
GET _cat/segments?v
index shard prirep ip segment generation docs.count docs.deleted size size.memory committed searchable version compound
goods_order_2020-02-24 0 p 10.25.237.34 _8a 298 45938 35933 7.2mb 12113 true true 8.2.0 false
返回字段 | 原文 | 含义 |
---|---|---|
index | index name | 索引名称 |
shard | shard name | 分片名称 |
prirep | primary or replica | 主分片还是副本分片 |
ip | ip of node where it lives | 所在节点ip |
segment | segment name | segments段名 |
generation | segment generation | 分段生成 |
docs.count | number of docs in segment | 段中的文档数 |
docs.deleted | number of deleted docs in segment | 段中删除的文档数 |
size | segment size in bytes | 段大小,以字节为单位 |
size.memory | segment memory in bytes | 段内存大小,以字节为单位 |
committed | is segment committed | 段是否已提交 |
searchable | is segment searched | 段是否可搜索 |
version | version | 版本 |
compound | is segment compound | compound模式 |
shards
显示索引分片信息
GET _cat/shards?v
index shard prirep state docs store ip node
goods_order_2020-03-04 1 p STARTED 42301 6.1mb 10.25.237.33 10.25.237.33
返回字段 | 原文 | 含义 |
---|---|---|
index | index name | 索引名称 |
shard | shard name | 分片序号 |
prirep | primary or replica | 分片类型,p表示是主分片,r表示是复制分片 |
state | shard state | 分片状态 |
docs | number of docs in shard | 该分片存放的文档数量 |
store | store size of shard (how much disk it uses) | 该分片占用的存储空间大小 |
ip | ip of node where it lives | 该分片所在的服务器ip |
node | name of node where it | 该分片所在的节点名称 |
thread_pool
显示线程池信息
GET _cat/thread_pool?v
node_name name active queue rejected
10.61.149.206 analyze 0 0 0
10.61.149.206 ccr 0 0 0
返回字段 | 原文 | 含义 |
---|---|---|
node_name | node name | 节点名称 |
name | thread pool name | 线程池名称 |
active | number of active threads | 活跃线程数 |
queue | number of tasks currently in queue | 当前队列中的任务数 |
rejected | number of rejected tasks | 被拒绝的任务数 |
templates
显示模板信息
GET _cat/templates?v
name index_patterns order version
.monitoring-es [.monitoring-es-7-*] 0 7000199
.data-frame-internal-2 [.data-frame-internal-2] 0 7040299
返回字段 | 原文 | 含义 |
---|---|---|
name | template name | 模板名称 |
index_patterns | template index patterns | 模板匹配规则 |
order | template application order number | 模板优先级 |
version | version | 模板版本 |
额外
GET _cat/health
v显示表头
GET _cat/allocation?v
help显示命令返回的参数说明
GET _cat/allocation?help
h选择要显示的列
GET _cat/health?v&h=epoch,cluster
format设置返回的内容格式
支持json,yaml,text,smile,cbor
GET _cat/health?format=json
sort排序
GET _cat/indices?v&s=docs.count:desc,store.size:asc
可以多个参数一起使用,用&连接
GET _cat/indices?v&s=store.size:desc
Java Api demo
eg:显示每个节点分片数量、占用空间
EsAllocationInfo.java
import com.alibaba.fastjson.annotation.JSONField;
/**
* desc : 显示每个节点分片数量、占用空间
* create_user : cheng
* create_date : 2020/3/24 10:42
*/
public class EsAllocationInfo {
/**
* 节点承载的分片数量
*/
private int shards;
/**
* 索引占用的空间大小
*/
private String diskIndices;
/**
* 节点所在机器已使用的磁盘空间大小
*/
private String diskUsed;
/**
* 节点可用空间大小
*/
private String diskAvail;
/**
* 节点总空间大小
*/
private String diskTotal;
/**
* 节点磁盘占用百分比
*/
private int diskPercent;
/**
* 节点的host地址
*/
private String host;
/**
* 节点的ip地址
*/
private String ip;
/**
* 节点名称
*/
private String node;
public int getShards() {
return shards;
}
public String getDiskIndices() {
return diskIndices;
}
public String getDiskUsed() {
return diskUsed;
}
public String getDiskAvail() {
return diskAvail;
}
public String getDiskTotal() {
return diskTotal;
}
public int getDiskPercent() {
return diskPercent;
}
public String getHost() {
return host;
}
public String getIp() {
return ip;
}
public String getNode() {
return node;
}
public void setShards(int shards) {
this.shards = shards;
}
@JSONField(name = "disk.indices")
public void setDiskIndices(String diskIndices) {
this.diskIndices = diskIndices;
}
@JSONField(name = "disk.used")
public void setDiskUsed(String diskUsed) {
this.diskUsed = diskUsed;
}
@JSONField(name = "disk.avail")
public void setDiskAvail(String diskAvail) {
this.diskAvail = diskAvail;
}
@JSONField(name = "disk.total")
public void setDiskTotal(String diskTotal) {
this.diskTotal = diskTotal;
}
@JSONField(name = "disk.percent")
public void setDiskPercent(int diskPercent) {
this.diskPercent = diskPercent;
}
public void setHost(String host) {
this.host = host;
}
public void setIp(String ip) {
this.ip = ip;
}
public void setNode(String node) {
this.node = node;
}
}
方法
/**
* desc : 显示每个节点分片数量、占用空间
* create_user : cheng
* create_date : 2020/3/24 10:57
*
* @clusterName 集群名称
*/
public static List<EsAllocationInfo> getEsAllocationList(String clusterName) throws Exception {
List<EsAllocationInfo> esAllocationList = new ArrayList<>(16);
List<ElasticsearchClusterEntity> esClusterList = getEsClusterList(clusterName);
Request request = new Request(HttpMethod.GET.name(), "/_cat/allocation?format=json&pretty");
for (ElasticsearchClusterEntity esClusterItem : esClusterList ) {
RestHighLevelClient client = RestHighLevelClientUtils.getClient(esClusterItem.getDomainName());
Response response = client.getLowLevelClient().performRequest(request);
InputStream inputStream = response.getEntity().getContent();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuilder builder = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
builder.append(line);
}
// 关闭资源
inputStream.close();
bufferedReader.close();
inputStreamReader.close();
List<EsAllocationInfo> partEsAllocationList = JsonSerializer.deserializeList(builder.toString(), EsAllocationInfo.class);
esAllocationList.addAll(partEsAllocationList);
}
return esAllocationList;
}