Elasticsearch-Cat命令详解
原创
©著作权归作者所有:来自51CTO博客作者写代码的lorre的原创作品,请联系作者获取转载授权,否则将追究法律责任
前言
本文基于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
| 模板版本
|
额外
v显示表头
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;
}