今天簡單介紹一下幾個觀察 elasticsearch 的指令與方法,讓我從個人最常用的index目錄說起。
Index 狀態
$ curl -XGET http://127.0.0.1:9200/_cat/indices?v
回傳結果
這是我個人最常用來確認現在 elasticsearch 保存的 index 有哪些以及所佔的空間有多少的方式。
shards 是什麼?讓我們在講到叢集結點的時候解釋
上面用來檢索的方式其實是利用 elasticsearch 提供的 _cat API 來達成,由於先前回傳的各種結果都是由 json 格式所組成,即便加上了 pretty 參數來顯示若是資料稍微複雜時難免還是不易閱讀,_cat API 不但幫我們解決閱讀性問題也直接提供了許多實用的查詢。
以下再補充幾個以後你可能會想知道的 API:
線程狀態
$ curl -s -XGET http://127.0.0.1:9200/_cat/thread_pool?v
回傳結果
node_name name active queue rejected
TkPKm5U bulk 0 0 0
TkPKm5U fetch_shard_started 0 0 0
TkPKm5U fetch_shard_store 0 0 0
TkPKm5U flush 0 0 0
TkPKm5U force_merge 0 0 0
TkPKm5U generic 0 0 0
TkPKm5U get 0 0 0
TkPKm5U index 0 0 0
TkPKm5U listener 0 0 0
TkPKm5U management 1 0 0
TkPKm5U refresh 0 0 0
TkPKm5U search 0 0 0
TkPKm5U snapshot 0 0 0
TkPKm5U warmer 0 0 0
叢集狀態
$ curl -XGET http://127.0.0.1:9200/_cat/health?v
回傳結果
節點狀態
$ curl -XGET http://127.0.0.1:9200/_cat/nodes?v
回傳結果
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.18.0.2 10 96 4 0.05 0.06 0.06 mdi * TkPKm5U
最後提醒大家我們可以透過參數 ?help 來幫助我們了解各個回傳結果欄位所代表的意義
For example :
$ curl -s -XGET http://127.0.0.1:9200/_cat/thread_pool?help
Return :
node_name | nn | node name
node_id | id | persistent node id
ephemeral_node_id | eid | ephemeral node id
pid | p | process id
host | h | host name
ip | i | ip address
port | po | bound transport port
name | n | thread pool name
type | t | thread pool type
active | a | number of active threads
size | s | number of threads
queue | q | number of tasks currently in queue
queue_size | qs | maximum number of tasks permitted in queue
rejected | r | number of rejected tasks
largest | l | highest number of seen active threads
completed | c | number of completed tasks
min | mi | minimum number of threads
max | ma | maximum number of threads
keep_alive | ka | thread keep alive time