搜索引擎elasticsearch监控利器cat命令

一、Cat通用参数

参数名 指令示例 功能
Verbose GET /_cat/XXX/?v 开启详细输出
Help GET /_cat/XXX/?help 输出可用的列
Headers GET /_cat/XXX/?h=column1,column2 指定输出的列
Sort GET /_cat/XXX/?v&s=column1,column2:desc,column3 指定输出的列进行排序,默认按照升序排序
Format GET /_cat/XXX?format=json 指定响应返回的数据格式:text(默认),json,yaml,smile,cbor。
(通过设置Accept的HTTP头部的多媒体格式的优先级更高)

二、cat命令

命令 示例 功能
aliases GET /_cat/XXX/aliases?v
GET /_cat/aliases/alias1,aliase2,aliase3
查询当前配置索引,过滤器,路由的别名
如果需要指定一至多个别名,则以逗号隔开
allocation GET /_cat/allocation?v 查询每个节点上分配的分片(shard)的数量和每个分片(shard)所使用的硬盘容量
count GET /_cat/count?v
GET /_cat/count/[index]?v
快速查询当前整个集群或者指定索引的document的数量(不包括删除的但是还没有清理掉的document)
fielddata GET /_cat/fielddata?v
GET /_cat/fielddata?v&fields=XXX
GET /_cat/fielddata/field1,field2,field3?v
查询集群中每个节点中的fileddata所使用的堆内存
指定fields
指定多个field
health GET /_cat/health?v
GET /_cat/health?v&ts=false
查询当前集群的健康信息(同/_cluster/health)
ts用于控制是否显示时间戳(timestamp)
1、常见的用途是用于监测节点之间的健康值
2、通过循环使用该命令,用于追踪大集群恢复的时间
/_cat/health; sleep 120; done green:
每个索引的primary shard和replica shard都是active状态的
yellow:
每个索引的primary shard都是active状态的,但是部分replica shard不是active状态,处于不可用的状态
red:
不是所有索引的primary shard都是active状态的,部分索引有数据丢失了
indices GET /_cat/indices/index1?v 查询指定索引index1的相关信息(组成一个索引(index)的shard数量,document的数量,删除的doc数量,主存大小和所有索引的总存储大小(包括replicas)
其中document的数量和删除document的数量是lucense层级的,包括所有隐藏的document数量
要获取Elasticsearch层级的精确的document数量可以使用 cat count或者Count API
master GET /_cat/master?v 仅用于显示master的节点ID,绑定IP地址,节点名称
nodeattrs GET /_cat/nodeattrs?v 输出显示自定义节点属性
nodes GET /_cat/nodes?v
GET /_cat/nodes?v&full_id=false
输出当前集群的拓扑结构(包括当前节点所在的地方和整个集群的相关信息等)
full_id(true/false)用于是否格式化ID字段以显示ID的全长或者简写
pending tasks GET /_cat/pending_tasks?v 输出集群中正在执行的任务(集群层级的变化,比如:创建索引,更新mapping,分配或者fail shard)同 /_cluster/pending_tasks
plugins GET /_cat/plugins?v 输出每个节点正在运行的插件信息
recovery GET /_cat/recovery?v 提供一个视图关于索引分片 正在恢复或者已经完成恢复的相关信息
恢复事件操作可以发生在集群中一个索引分片从一个节点移动到另外一个节点上。可以发生在快照恢复期间,一个replication层级的变化,节点失败,或者节点启动的时候。节点启动的恢复操作也叫本地存储恢复(当一个节点启动的时候分片从硬盘上被加载到)
repositories GET /_cat/repositories?v 输出集群中注册快照存储库
thread pool GET /_cat/thread_pool 输出每个节点集群范围的线程池统计信息,默认情况下返回正在活动,队列和被拒绝的统计信息
shards GET /_cat/shards

GET /_cat/shards/twitt*
输出节点包含分片的详细信息(当前分片是primary shard还是 replica shard,doc的数量,硬盘上占用的字节已经该节点被分配在哪里等)
指定索引(模糊匹配)
这个命令可以用于查看分片的迁移情况和分片的状态
segments GET /_cat/segments?v

GET /_cat/segments/index1,index1
输出索引分片中关于segment的低层级的信息(包括索引名称,分片数量,doc数量等),提供的信息类似于_segments端点
查询指定索引(index1,index2)的segments信息
snapshots GET /_cat/snapshots/repo1?v 输出属于指定仓库的快照信息(snapshots)
每个快照信息包括了它被启动和被停止的信息。
templates GET /_cat/templates?v
GET /_cat/templates/templateName1
GET /_cat/templates/template*
输出当前正在存在的模板信息
输出指定模板的信息

三、示例

查询aurajike索引下的总文档数和有效文档数

当从es删除文档时,是软删除的,es通过升级文档的版本号来插入新文档,旧版本的文档自然就失效了。旧版本的文档会异步的在未来的某个时间段被真正删除。
所以对于某个索引在某个时刻的文档数,总存在两个数字,一个总文档数,一个是有效的:

查询索引aurajike的总文档数
总文档数:662133
另已删除:126914

GET _cat/indices/aurajike?v
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open aurajike *** 2 2 662133 126914 156.6mb 59.8mb

查询索引aurajike的真实文档数
真实文档数:11169

GET /_cat/count/aurajike?v
epoch timestamp count
1562902995 03:43:15 11169

查询aurajike各分片的调度情况

主分片0调度在node2,主分片1调度在node3,剩余4个副本分片均衡调度

GET /_cat/shards/aurajike?v
index shard prirep state docs store ip node
aurajike 1 r STARTED 330684 23.7mb ip1 node1
aurajike 1 r STARTED 330684 25.4mb ip2 node2
aurajike 1 p STARTED 330684 24.1mb ip3 node3
aurajike 0 r STARTED 331449 23.8mb ip1 node1
aurajike 0 p STARTED 331449 35.7mb ip2 node2
aurajike 0 r STARTED 331449 23.7mb ip3 node3
posted @ 2019-07-12 18:22  Jo_ZSM  阅读(2066)  评论(0编辑  收藏  举报