1. 程式人生 > >ES檢視叢集資訊命令

ES檢視叢集資訊命令

本文主要講述ElasticSearch5.6.1如何監控叢集狀態、檢視叢集資訊的一般操作方法。

關於ElasticSearch5.6.1的環境搭建,請參考我另一篇博文。

在使用ES的過程中,我們時常要關注著叢集的狀態。

ES檢視叢集的狀態實際上也是使用RESTful的介面,而且一般用的是GET方法,所以本文演示就直接用瀏覽器演示就好了。

curl和kibana下Dev tools的console方法都是一樣的。

crul

curl -X get [請求的連結]

kibana

GET [請求的連結]

也許,我們檢視叢集狀態頻率最高的是下面這個。

http://[主機IP]:[ES埠]

通常我們啟動伺服器之後,就可以通過這個簡單的方式來驗證伺服器是否啟動成功。

從下面返加的JSON我們可以得到該節點的節點名,所屬叢集名,ES版本號,lucene版本號。

本次演示的叢集有兩個節點,屬於本地單臺機器的兩個節點。

主機IP和埠如下

127.0.0.1:9200

127.0.0.1:9201

所以我們從另外一個節點進入,情況是一樣的。

因此在下面演示過程中,埠號使用9200與9201無異,我選擇9200埠進行演示。

下面演示利用其它URL來監控和檢視叢集狀態。

1.檢視叢集的健康狀態。

http://127.0.0.1:9200/_cat/health?v

URL中_cat表示檢視資訊,health表明返回的資訊為叢集健康資訊,?v表示返回的資訊加上頭資訊,跟返回JSON資訊加上?pretty同理,就是為了獲得更直觀的資訊,當然,你也可以不加,不要頭資訊,特別是通過程式碼獲取返回資訊進行解釋,頭資訊有時候不需要,寫shell指令碼也一樣,經常要去除一些多餘的資訊。

通過這個連結會返回下面的資訊,下面的資訊包括:

叢集的狀態(status):red紅表示叢集不可用,有故障。yellow黃表示叢集不可靠但可用,一般單節點時就是此狀態。green正常狀態,表示叢集一切正常。

節點數(node.total):節點數,這裡是2,表示該叢集有兩個節點。

資料節點數(node.data):儲存資料的節點數,這裡是2。資料節點在Elasticsearch概念介紹有。

分片數(shards):這是12,表示我們把資料分成多少塊儲存。

主分片數(pri):primary shards,這裡是6,實際上是分片數的兩倍,因為有一個副本,如果有兩個副本,這裡的數量應該是分片數的三倍,這個會跟後面的索引分片數對應起來,這裡只是個總數。

啟用的分片百分比(active_shards_percent):這裡可以理解為載入的資料分片數,只有載入所有的分片數,叢集才算正常啟動,在啟動的過程中,如果我們不斷重新整理這個頁面,我們會發現這個百分比會不斷加大。

  1. epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent

  2. 1506327257 16:14:17 ruan_ES green 2 2 12 6 0 0 0 0 - 100.0%


2.檢視叢集的索引數。

http://127.0.0.1:9200/_cat/indices?v

通過該連線返回了叢集中的所有索引,其中.kibana是kibana連線後在es建的索引,school是我自己新增的。

這些資訊,包括

索引健康(health),green為正常,yellow表示索引不可靠(單節點),red索引不可用。與叢集健康狀態一致。

狀態(status),表明索引是否開啟。

索引名稱(index),這裡有.kibana和school。

uuid,索引內部隨機分配的名稱,表示唯一標識這個索引。

主分片(pri),.kibana為1,school為5,加起來主分片數為6,這個就是叢集的主分片數。

文件數(docs.count),school在之前的演示添加了兩條記錄,所以這裡的文件數為2。

已刪除文件數(docs.deleted),這裡統計了被刪除文件的數量。

索引儲存的總容量(store.size),這裡school索引的總容量為6.4kb,是主分片總容量的兩倍,因為存在一個副本。

主分片的總容量(pri.store.size),這裡school的主分片容量是7kb,是索引總容量的一半。

  1. health status index uuid pri rep docs.count docs.deleted store.size pri.store.size

  2. green open .kibana fOZj7Gw4TcCh2J-NqqN7kw 1 1 1 0 6.4kb 3.2kb

  3. green open school 3siCj6cRSHGdP7kvXPWQgw 5 1 2 0 14.1kb 7kb



3.檢視叢集所在磁碟的分配狀況

http://127.0.0.1:9200/_cat/allocation?v

通過該連線返回了叢集中的各節點所在磁碟的磁碟狀況

返回的資訊包括:

分片數(shards),叢集中各節點的分片數相同,都是6,總數為12,所以叢集的總分片數為12。

索引所佔空間(disk.indices),該節點中所有索引在該磁碟所點的空間。

磁碟使用容量(disk.used),已經使用空間41.6gb

磁碟可用容量(disk.avail),可用空間4.3gb

磁碟總容量(disk.total),總共容量45.9gb

磁碟便用率(disk.percent),磁碟使用率90%。

  1. shards disk.indices disk.used disk.avail disk.total disk.percent host ip node

  2. 6 10.2kb 41.6gb 4.3gb 45.9gb 90 127.0.0.1 127.0.0.1 ruan-node-1

  3. 6 10.2kb 41.6gb 4.3gb 45.9gb 90 127.0.0.1 127.0.0.1 ruan-node-2

4.檢視叢集的節點

http://127.0.0.1:9200/_cat/nodes?v

通過該連線返回了叢集中各節點的情況。這些資訊中比較重要的是master列,帶*星號表明該節點是主節點。帶-表明該節點是從節點。

另外還是heap.percent堆記憶體使用情況,ram.percent執行記憶體使用情況,cpu使用情況。

  1. ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name

  2. 127.0.0.1 19 99 6 2.86 mdi * ruan-node-1

  3. 127.0.0.1 13 99 6 2.86 mdi - ruan-node-2

5.檢視叢集的其它資訊。

http://127.0.0.1:9200/_cat/

通過上面的連結,其實,我們就相當於獲得檢視叢集資訊的目錄。

  1. =^.^=

  2. /_cat/allocation

  3. /_cat/shards

  4. /_cat/shards/{index}

  5. /_cat/master

  6. /_cat/nodes

  7. /_cat/tasks

  8. /_cat/indices

  9. /_cat/indices/{index}

  10. /_cat/segments

  11. /_cat/segments/{index}

  12. /_cat/count

  13. /_cat/count/{index}

  14. /_cat/recovery

  15. /_cat/recovery/{index}

  16. /_cat/health

  17. /_cat/pending_tasks

  18. /_cat/aliases

  19. /_cat/aliases/{alias}

  20. /_cat/thread_pool

  21. /_cat/thread_pool/{thread_pools}

  22. /_cat/plugins

  23. /_cat/fielddata

  24. /_cat/fielddata/{fields}

  25. /_cat/nodeattrs

  26. /_cat/repositories

  27. /_cat/snapshots/{repository}

  28. /_cat/templates

其實很多都可以見詞知義的,希望讀者們把上面都嘗試一遍,很多東西,特別是ES的一些基本概念就懂了。

有關叢集資訊的檢視就演示到這裡,其實我只是演示了很小的一部分,但是根據這些步驟,你們可以繼續探索下去了。

如果有什麼更好的方法,可以留言告訴我哦,比如一些視覺化工具之類的,希望大家一起交流。