ElasticSearch入門
準備好將ElasticSearch作爲測試驅動器,並且親自了解如何使用REST API來存儲、搜索和分析數據了嗎?
按照以下步驟,逐步完成入門教程:
- 啓動並運行Elasticsearch集羣
- 爲一些樣本文件編制索引
- 使用Elasticsearch查詢語言搜索文檔
- 使用存儲桶和指標聚合分析結果
查看Elasticsearch簡介,學習術語,並瞭解Elasticsearch的工作原理。如果您已經熟悉Elasticsearch並想了解它如何與其餘堆棧一起工作,則可能要跳到 Elastic Stack教程,以瞭解如何使用Elasticsearch,Kibana,Beats和Logstash。
開始使用Elasticsearch的最快方法是 在雲中開始Elasticsearch Service的14天免費試用。
啓動並運行ElasticSearch
要將Elasticsearch用作測試驅動器,您可以 在Elasticsearch Service上創建 託管部署,或在您自己的Linux,macOS或Windows計算機上設置多節點Elasticsearch集羣。
在Elastic Cloud上運行ElasticSearch
在Elasticsearch Service上創建部署時,該服務與Kibana和APM一起配置一個帶有三節點Elasticsearch集羣。
要創建部署:
- 註冊免費試用版, 然後驗證您的電子郵件地址。
- 爲您的帳戶設置密碼。
- 單擊創建部署。
在Linux、macOS或Windows上本地運行ElasticSearch
在Elasticsearch Service上創建部署時,將自動設置一個主節點和兩個數據節點。通過從tar或zip存檔安裝,您可以在本地啓動Elasticsearch的多個實例,以查看多節點集羣的行爲。
要在本地運行三節點的Elasticsearch集羣:
1.下載適用於您的操作系統的Elasticsearch存檔:
Linux:elasticsearch-7.6.1-linux-x86_64.tar.gz
macOS:elasticsearch-7.6.1-darwin-x86_64.tar.gz
Windows: elasticsearch-7.6.1-windows-x86_64.zip
2.提取
Linux:
tar -xvf elasticsearch-7.6.1-linux-x86_64.tar.gz
macOS:
tar -xvf elasticsearch-7.6.1-darwin-x86_64.tar.gz
Windows PowerShell:
Expand-Archive elasticsearch-7.6.1-windows-x86_64.zip
3.從bin目錄啓動ElasticSearch
Linux and macOS:
cd elasticsearch-7.6.1/bin
./elasticsearch
Windows:
cd elasticsearch-7.6.1\bin
.\elasticsearch.bat
你現在就運行起了單節點的ElasticSearch集羣
4.啓動另外兩個Elasticsearch實例,以便您可以看到典型的多節點集羣的行爲。您需要爲每個節點指定唯一的數據和日誌路徑。
Linux and macOS:
./elasticsearch -Epath.data=data2 -Epath.logs=log2
./elasticsearch -Epath.data=data3 -Epath.logs=log3
Windows:
.\elasticsearch.bat -E path.data=data2 -E path.logs=log2
.\elasticsearch.bat -E path.data=data3 -E path.logs=log3
爲其他節點分配了唯一的ID。因爲您在本地運行所有三個節點,所以它們會自動與第一個節點一起加入羣集。
5.使用cat health API驗證三節點集羣是否正在運行。cat API以比原始JSON更易於閱讀的格式返回有關集羣和索引的信息。
您可以通過向Elasticsearch REST API提交HTTP請求來直接與集羣交互。如果已安裝並正在運行Kibana,則也可以打開Kibana並通過開發控制檯提交請求。
GET /_cat/health?v
該相應狀態表明ElasticSearch集羣是綠色,並且它有三個節點:
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1565052807 00:53:27 elasticsearch green 3 3 6 3 0 0 0 0 - 100.0%
Note:如果您僅運行單個Elasticsearch實例,則集羣狀態將保持黃色。單節點羣集具有完整的功能,但是無法將數據複製到另一個節點以提供彈性。副本分片必須可用,羣集狀態爲綠色。如果羣集狀態爲紅色,則某些數據不可用。
使用CURL命令與ElasticSearch進行交互
對Elasticsearch的請求包含與任何HTTP請求相同的部分:
curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
本示例使用以下變量:
<VERB>
適當的HTTP方法或動詞。例如,GET,POST, PUT,HEAD,或DELETE。
<PROTOCOL>
無論是http或https。如果您在Elasticsearch前面有一個HTTPS代理,或者您使用Elasticsearch安全功能來加密HTTP通信,請使用後者。
<HOST>
Elasticsearch集羣中任何節點的主機名。或者, localhost用於本地計算機上的節點。
<PORT>
運行Elasticsearch HTTP服務的端口,默認爲9200。
<PATH>
API端點,可以包含多個組件,例如 _cluster/stats或_nodes/stats/jvm。
<QUERY_STRING>
任何可選的查詢字符串參數。例如,?pretty 將漂亮地打印 JSON響應以使其更易於閱讀。
<BODY>
JSON編碼的請求正文(如有必要)。
如果啓用了Elasticsearch安全功能,則還必須提供有權運行API的有效用戶名(和密碼)。例如,使用 -u或--ucURL命令參數。有關運行每個API所需的安全特權的詳細信息,請參閱REST API。
Elasticsearch使用HTTP狀態代碼(例如)響應每個API請求200 OK。除HEAD請求外,它還返回JSON編碼的響應正文。
其他安裝選項
從存檔文件安裝Elasticsearch使您能夠輕鬆地在本地安裝和運行多個實例,以便您可以嘗試一下。要運行一個實例,您可以在Docker容器中運行Elasticsearch,在Linux上使用DEB或RPM軟件包安裝Elasticsearch,在macOS上使用Homebrew進行安裝,或者在Windows上使用MSI軟件包安裝程序進行安裝。有關更多信息,請參見安裝Elasticsearch。