一、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 |