前言
在上一篇文章中着重介绍了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开头的所有索引的文档总数