Elasticsearch開發(fā)常用命令有哪些

這篇文章給大家分享的是有關(guān)Elasticsearch開發(fā)常用命令有哪些的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來(lái)看看吧。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),祁連企業(yè)網(wǎng)站建設(shè),祁連品牌網(wǎng)站建設(shè),網(wǎng)站定制,祁連網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,祁連網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

0、背景

Elasticsearch 具有一組豐富的易于理解的 REST API,這些 API  均可如下幾種方式通過 HTTP 調(diào)用進(jìn)行訪問。

  • Curl
  • Postman
  • head 插件
  • cerebro 工具
  • kibana

開發(fā)實(shí)戰(zhàn)環(huán)節(jié),我推薦使用:kibana Dev-tools。

Elasticsearch開發(fā)常用命令有哪些

原因如下:

  • 有提示功能
  • 方便快捷、效率高
  • 不容易出錯(cuò)
 

1、Elasticsearch REST URL 拆解

 

1.1 REST URL和選項(xiàng)概述

舉個(gè)栗子:

POST products/_search?size=0
{
  "aggs": {
    "product_aggs": {
      "terms": {
        "field":"name.keyword"
      }
    }
  }
}
 

調(diào)用REST API很容易,除了實(shí)際的主機(jī)名/ IP和端口外,它還包含四個(gè)部分:

  • 動(dòng)詞——REST調(diào)用的 GET,PUT,POST和DELETE部分。

在Kibana中,您可以直接指定這些名稱,對(duì)于cURL,請(qǐng)使用-X選項(xiàng)。

對(duì)應(yīng)示例中的:POST

  • 路徑——API和路徑。

例如:/_cluster / health 或 /logstash-cron-2020.07.03/_mapping-路徑的第一部分通常是索引名稱,除非它以_開頭。

對(duì)應(yīng)示例中的:products/_search,其中products是索引。

  • 參數(shù)——后面的各種選項(xiàng)?

例如?h或?v

對(duì)應(yīng)示例中的:?size=0。參數(shù)設(shè)定部分。

  • 正文——某些調(diào)用需要JSON正文(例如設(shè)置選項(xiàng)),并將包含在{}中

對(duì)應(yīng)示例中的:檢索語(yǔ)句部分。

 

1.2 常用選項(xiàng)

有一些通用選項(xiàng)適用于許多(不是全部)URL。這些是:

  • ?help——幫助選項(xiàng)。

將在列表中提供 API 可用的字段,其中包含短名稱和長(zhǎng)名稱、說(shuō)明等。

舉例:

GET _cat/indices?help
 
  • ?h =-“ h”——使用上方“幫助”顯示中的短名稱或長(zhǎng)名稱指定要包括在結(jié)果中的字段。這些用逗號(hào)分隔,沒有空格。

舉例:

GET _cat/indices?h=docs.count,store.size
 

這樣以后返回結(jié)果一頭霧水,相當(dāng)于 Excel 有 N 列字段,但沒有表頭一樣,很痛苦!

  • ?v——'v'在回復(fù)的頂部包括字段名稱。
GET _cat/indices?h=docs.count,store.size&v
 

-v 參數(shù)的妙處主要體現(xiàn)在:加上了表頭,直觀交互呈現(xiàn)。

  • ?s——'s'用于排序,使用列出的字段作為排序鍵。

如下所示:我們可能會(huì)看到節(jié)點(diǎn)列表。包括:返回字段名稱,字段名稱要顯示并按名稱name排序:

GET /_cat/nodes?v&h=heap.percent,diskUsedPercent,cpu,master,name&s=name
 

另外,Kibana 會(huì)將您的 Dev Tools 查詢保存在 cookie 中。

有了上面的背景知識(shí),下面的常見開發(fā)相關(guān)的常用命令清單看起來(lái)就相對(duì)容易了。

 

2、狀態(tài) & 統(tǒng)計(jì)相關(guān)命令清單

最有用的 API 調(diào)用通常與集群的運(yùn)行狀況,狀態(tài)和統(tǒng)計(jì)信息有關(guān),例如:

 

2.1 獲取版本和集群名稱等信息。

GET / 
     

2.2 獲取集群健康狀態(tài)等信息,包括集群名稱、節(jié)點(diǎn)數(shù)、數(shù)據(jù)節(jié)點(diǎn)數(shù)、分片等的一些統(tǒng)計(jì)信息。

GET /_cluster/health
     

2.3 獲取節(jié)點(diǎn)列表信息。顯示了堆內(nèi)存、磁盤使用情況,CPU 、負(fù)載和主機(jī)角色。

用途:用來(lái)監(jiān)視負(fù)載和磁盤使用情況以及主機(jī)角色。

GET /_cat/nodes?v&h=heap.percent,diskUsedPercent,cpu,load_1m,master,name&s=name
     

2.4 Index Level 索引層面健康

GET /_cluster/health?level=indices&pretty
     

2.5 Shard Level 分片層面健康

GET /_cluster/health?level=shards&pretty
     

2.6 獲取索引,文檔,緩存,段,節(jié)點(diǎn)等的集群統(tǒng)計(jì)信息的更深入概述。

用途:有助于基本故障排除。

GET /_cluster/stats 
     

2.7 獲取節(jié)點(diǎn)級(jí)別的更多統(tǒng)計(jì)信息,包括堆使用情況等。

GET /_nodes/stats 
     

3、線程相關(guān)狀態(tài)&統(tǒng)計(jì)命令清單

 

3.1 很長(zhǎng)但有用的線程隊(duì)列視圖

GET /_cat/thread_pool?v&h=node_name,name,type,active,size,queue,queue_size,rejected,largest,completed,min,max&s=node_name,name
     

3.2 查看熱點(diǎn)線程,用于排查誰(shuí)在占用CPU資源等

GET /_nodes/hot_threads/ 
     

3.3 快速獲取索引模式。

例如:所有這些logstash *前綴索引的文檔總數(shù)的方法。

GET /_cat/count/logstash*?v
     

4、索引相關(guān)狀態(tài)&統(tǒng)計(jì)命令清單

 

4.1 通配符索引列表獲取

包含:大小,文檔計(jì)數(shù),狀態(tài)等。

GET /_cat/indices/logstash*?v
     

4.2 找到size 最大的索引

GET /_cat/indices/logstash-*?v&h=index,ss&s=ss:desc
     

4.3 獲取狀態(tài)為黃色的索引

GET /_cat/indices?v&health=yellow
 
  • 紅色 red:至少一個(gè)主分片不可用。
  • 黃色 yellow:至少一個(gè)副本分片不可用。
  • 綠色 green:集群主、副本分片都可用,集群健康。
 

5、 設(shè)置相關(guān)清單

Elasticsearch中有許多設(shè)置,但最常見的是“集群”和“索引”級(jí)別。

 

5.1  集群設(shè)置

最基本的集群設(shè)置視圖——顯示非默認(rèn)的持久性和瞬態(tài)設(shè)置信息。

GET /_cluster/settings
 

更大的列表視圖——包括所有默認(rèn)值,并使用平面視圖使其更易于閱讀。

GET /_cluster/settings?include_defaults=true&flat_settings=true
     

5.2 索引設(shè)置

獲取指定索引的設(shè)置列表信息。

GET /logstash-cron-2020.08.03/_settings 
 

獲取索引的元信息、設(shè)置信息以及Mapping信息。

GET /logstash-cron-2020.08.03 
     

6、 關(guān)閉&刪除索引

 

6.1 關(guān)閉索引

支持單個(gè)或者模糊匹配多個(gè)索引。

POST /logstash-*-2020.03.*/_close 
     

6.2 刪除索引

支持單個(gè)或者模糊匹配多個(gè)

DELETE /logstash-*-2020.04.* 
     

7、故障排查清單

之前運(yùn)維清單有過陳述,開發(fā)也需要。

 

7.1 獲?。阂逊峙浜臀捶峙涞姆制?。

GET /_cat/shards?v&h=n,index,shard,prirep,state,sto,sc,unassigned.reason,unassigned.details&s=sto,index
     

7.2 查看未分配的分片及原因

GET _cat/shards?v&h=index,shard,prirep,state,unassigned.reason&s=state 
     

7.3 查看未分配的細(xì)節(jié)說(shuō)明信息

GET /_cluster/allocation/explain
     

7.4 查看指定分片未分配的細(xì)節(jié)

GET /_cluster/alloGET /_cluster/allocation/explain 
{ "index": "logstash-cloudtrail-2019.10.16", "shard": 0, "primary": true} cation/explain { "index": "logstash-cloudtrail-2019.10.16", "shard": 0, "primary": true} 
     

7.5 下線節(jié)點(diǎn)

PUT _cluster/settings?pretty
{
  "transient": {
    "cluster.routing.allocation.exclude._ip": "10.0.0.1"
  }
}
     

8、模板清單

 

8.1 列舉已定義的所有模板

GET /_cat/templates?v&s=order,name
     

8.2 列舉指定名稱的模板信息

GET /_template/logstash
     

9、快照&恢復(fù)

 

9.1 列出系統(tǒng)中配置的快照存儲(chǔ)庫(kù)。大多數(shù)其他API調(diào)用都需要這些名稱。

GET /_snapshot 
     

9.2 獲取任何正在運(yùn)行的快照的狀態(tài)和統(tǒng)計(jì)信息

GET /_snapshot/_status 
     

9.3 獲取快照的有用信息

GET /_cat/snapshots/my_repository?v&h=id,status,start_time,duration,indicies,successful_shards,failed_shards,total_shards
     

10、 分片分配與恢復(fù)清單

 

10.1 分片分配查看

GET /_cat/allocation?v
     

10.2 分片恢復(fù)查看

GET /_cat/recovery?v
     

10.3 運(yùn)行任務(wù)查看

GET /_cat/pending_tasks?v
     

10.4 清理緩存

POST /_cache/clear

感謝各位的閱讀!關(guān)于“Elasticsearch開發(fā)常用命令有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

文章題目:Elasticsearch開發(fā)常用命令有哪些
網(wǎng)站路徑:http://bm7419.com/article38/goissp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)網(wǎng)站營(yíng)銷、網(wǎng)站內(nèi)鏈網(wǎng)站制作、企業(yè)網(wǎng)站制作、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司