前言

在上一篇文章中着重介绍了ES的数据读写模型。是一篇纯理论的文章,为什么先写这样一篇文章呢,主要与我个人的学习习惯有关——学习任何东西首先要大致明白他的基本概念和原理。ES中涉及的基本概念相对比较少就没有单独摘出来讲,如果有必要后期可能会加上。所以上一篇文章主要介绍了数据读写,从本章开始进入查询语法的介绍。

元信息查询

本章节中为了统一风格和避免敏感信息泄露,我会将es的ip:port字符串使用{{ _.es_url }}代替。
所有元信息查询的api都以_cat开头。

1.查询所有元信息api。
顾名思义该api的返回结果为所有可用的,用于查询元信息的api地址。

http://{{ _.es_url }}/_cat/

查询结果如下:

=^.^=
/_cat/allocation
/_cat/shards
/_cat/shards/{index}
/_cat/master
/_cat/nodes
/_cat/tasks
/_cat/indices
/_cat/indices/{index}
/_cat/segments
/_cat/segments/{index}
/_cat/count
/_cat/count/{index}
/_cat/recovery
/_cat/recovery/{index}
/_cat/health
/_cat/pending_tasks
/_cat/aliases
/_cat/aliases/{alias}
/_cat/thread_pool
/_cat/thread_pool/{thread_pools}
/_cat/plugins
/_cat/fielddata
/_cat/fielddata/{fields}
/_cat/nodeattrs
/_cat/repositories
/_cat/snapshots/{repository}
/_cat/templates
/_cat/ml/anomaly_detectors
/_cat/ml/anomaly_detectors/{job_id}
/_cat/ml/trained_models
/_cat/ml/trained_models/{model_id}
/_cat/ml/datafeeds
/_cat/ml/datafeeds/{datafeed_id}
/_cat/ml/data_frame/analytics
/_cat/ml/data_frame/analytics/{id}
/_cat/transforms
/_cat/transforms/{transform_id}

以上是全部元信息查询相关api,下面会摘出几个常用的元信息查询api
单独讲解。

2.查看分片信息
该接口为查询到关于分片的七个字段,如下:

  • index:分片所在索引
  • shard:分片编号,从0开始
  • prierp:分片类型,p表示主副本,r表示普通副本
  • state:分片状态
  • docs:分片中文档数
  • store:分片大小
  • ip:分片所在主机
  • node:同上
http://{{ _.es_url }}/_cat/shards?v

3.查询集群节点信息
api

http://{{ _.es_url }}/_cat/nodes?v

下面是该接口可以返回的信息,master字段表示主节点。下面可以看到5是主节点。

ip

heap.percent

ram.percent

cpu

load_1m

load_5m

load_15m

node.role

master

name

192.168.0.5

36

99

3

2.53

2.45

2.21

dilmrt

*

slave5

192.168.0.3

65

99

0

0.23

0.23

0.31

dilmrt

-

slave3

192.168.0.7

69

99

2

2.15

1.75

1.58

dilmrt

-

slave7

192.168.0.6

67

94

1

1.66

1.30

1.06

dilmrt

-

slave6

192.168.0.14

61

99

3

1.32

1.55

1.73

dilmrt

-

slave14

192.168.0.8

67

99

2

3.54

2.36

1.92

dilmrt

-

slave8

04.查询磁盘分配情况

api

http://{{ _.es_url }}/_cat/allocation?v

集群分配情况主要包含,集群分片数量、集群占用磁盘空间大小等信息。

shards

disk.indices

disk.used

disk.avail

disk.total

disk.percent

host

ip

node

3125

490tb

539tb

546tb

1085tb

49

192.168.0.8

192.168.0.8

slave8

05.查询索引信息
api

http://{{ _.es_url }}/_cat/indices?v

结果如下:

health

status

index

uuid

pri

rep

docs.count

docs.deleted

store.size

pri.store.size

yellow

open

test-20210112

seASt97o5SkCF1hupv3ix4A

5

1

123537

3

13.7gb

4.7gb

yellow

open

test-20210111

3fwxq3-S7Sx6eEIpfCJ5kjQ

5

1

123648

7

13.9gb

6gb

green

open

test-20210114

Okbcne7fT7uaFrXiRlJbt6w

5

1

128605

14

10.9gb

5.4gb

green

open

test-20210113

IJ9ov8s45TyKFjjyT1tqOIQ

5

1

126131

6

12.2gb

6.1gb

green

open

test-20210110

SqxHe3gV5QcGckz0G1ISS8A

5

1

125840

16

58.8gb

7.4gb

06.查看master信息
这个信息显示的非常简单,查看集群节点信息的api不仅可以查看master节点,还可以查看其它节点。
api

http://{{ _.es_url }}/_cat/master?v

查询结果如下

id

host

ip

node

N3dwvGKLQ445GlP972R-DXqg

192.168.0.6

192.168.0.6

slave6

07.查看集群和单个索引的文档总数
查询文档总数不一定必须使用元信息查询api进行查询,以后还会讲到track_total_hits参数,用它也是可以查的。
api

http://{{ _.es_url }}/_cat/count/zhy-detect*?v

注意:
http://localhost:9200/_cat/count?v查看集群文档总数
http://localhost:9200/_cat/count/test*?v查看test开头的所有索引的文档总数