天天看點

【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)

講師:阮一鳴——eBay Pronto 平台技術負責人、極客時間『Elasticsearch 核心技術與實戰』課程講師

課程為了更多同學能快速體驗 Elasticsearch,為大家提供了免費的阿裡雲 Elasticsearch (3節點1核2G)的測試環境>>>>

去開通
https://developer.aliyun.com/topic/elasticsearch
【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)
https://developer.aliyun.com/topic/elasticsearch

課程回顧

7 | 在Docker容器中運作Elasticsearch Kibana和 Cerebro 8 | Logstash安裝與導入資料 9 | 基本概念:索引、文檔和REST API 10 | 基本概念:節點、叢集、分片及副本

知識點一:在 Docker 容器中運作 Elasticsearch Kibana和 Cerebro

lasticsearch 成立之初就開始擁抱容器技術,官方不僅提供 Docker Image,同時在2019年5月,在釋出7.1版本時,免費支援并提供 Elatic Operator on Kubernetes。而Cerebro 可以很好的讓大家學習了解 Elasticsearch 分布式特性。

【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)

關于在本機運作 Docker 環境去啟動 Elasticsearch 有兩點好處

  • 可以通過一行指令,快速搭建環境
  • 非常快捷的清除資料

Demo 部分請跟随課程,動手試試吧

【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)

課程相關資料通路及下載下傳

下載下傳安裝 Docker 與 Docker Compose

https://www.docker.com https://docs.docker.com/compose https://docs.docker.com/machine/install-machine/

Docker - Compose 相關指令

• 運作 Docker- compose up

• docker Compose down

• docker Compose down - v

• docker stop / rm containerID

GitHub:

https://github.com/onebirdrocks/geektime-ELK/

知識點二:Logstash 安裝與導入資料

我們通過 Elastic 官網下載下傳并安裝 Logstash,并在 Docker 本地運作,下載下傳需要確定版本号跟 Elasticsearch 相一緻;

【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)
下載下傳安裝 Logstash:
http://www.elastic.co/downloads/logstash

開通阿裡雲 Logstash 2核4G 1個月免費測試環境_

點選開通

通過Movieiens 測試資料集,寫了一個配置檔案,并通過 Logstash 将這些資料寫入 Elasticsearch,這些測試資料對于我們學習查詢 Elasticsearch 起到非常關鍵的作用

【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)
下載下傳 Movie Len 資料:
https://grouplens.org/datasets/movielens/
【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)

知識點三:基本概念(1)- 索引,文檔和 REST API

Elasticsearch 中的“索引”和“文檔”是一個邏輯概念,偏向與開發者視角;“文檔”是所有可能搜尋資料的最小機關,“索引”是相似文檔的集合。

【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)

關于“文檔”

在 Elasticsearch 中,“文檔”以序列化成 JSON 格式儲存,每個文檔均對應一個 Unique ID和中繼資料,如 【_index-索引名】、【_type-類型名】等

【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)

關于“索引”

在 Elasticsearch 中“索引”是相似文檔的集合,每一個“索引”都有屬于自己的 Mapping 定義文檔,用于描述包含的字段名和類型。每一個索引可以建立一個 “Type”(Elasticsearch 7.0之後),每個“Type”底下有相同結構的文檔。

【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)

與關系型資料庫類比時,當用于全文檢索,Elasticsearch 比較有優勢,往往會将Elasticsearch 與資料庫組合使用。

【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)

關于“REST API”

“REST API”是 Elasticsearch 為了友善其他語言整合,對程式做調用。當程式需要與 Elasticsearch 做內建時,我們僅需發出 HTTP 的請求,就可以得到相應的結果。

【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)

• 檢視一些與 index 的相關 API

• 進入 Kinbana Index Management 界面,探索 Index 相關的資訊

知識點四:基本概念(2)- 叢集 / 節點 / 分片 / 副本

關于“叢集”

Elasticsearch 的“叢集”是一個分布式叢集,滿足“高可用”、“可拓展”的特性。不僅提供存儲的水準擴容,而且當出現部分節點停止服務,也不影響整個叢集的服務。

Elasticsearch 官方也提供 CAT API,來幫助了解“叢集”健康狀況,用“green”、“yellow”、“red”,分别代表叢集“主、副分片配置設定正常”、“主分片正常配置設定,副本未正常配置設定”、“主分片未正常配置設定

【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)

關于“節點”

“節點”是一個 Elasticsearch 的執行個體,本質上是一個 JAVA 的程序,當節點啟動後,系統會配置設定一個 UID,儲存着在 Data 目錄下。

不同的節點,會承擔不同的角色

【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)

其他還有很多類型節點,比如需要做日志 Case 時,有“Hot & Warm Node”、用于機器學習的“Machine Learning Node”;

每個節點啟動,都會讀取 Elasticsearch YML 配置檔案,用于決定自己承擔說明角色

【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)

關于“分片/副本”

“分片”分為 Primary Shard & Replica Shard(主、副分片)

【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)

通過分片,将資料分布在叢集節點上,生産環境中,需要提前規劃分片容量

當分片設定過小

  1. 導緻後續無法增加節點實作水準擴充
  2. 當分片資料量超過容量,重新配置設定資料會耗費過多時間

當分片設定過大

  1. 影響搜尋結果相關性打分。
  2. 導緻統計不準确,影響性能造成浪費。
【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)

• 檢視一個叢集的健康狀态

http://localhost:9200/_cluster/health

• CAT API

  1. http://localhost:9200/_cat/nodes
  2. 檢視索引和分片

• 設定分片數

• Kibana+Cerebro 界面介紹

下周課程預告

點選預約課程

11 | 文檔的基本CRUD與批量操作 12 | URI Search詳解 13 | 通過Analyzer進行分詞 14 | Search API概覽

相關活動

更多折扣活動,請通路

阿裡雲 Elasticsearch 官網 • 阿裡雲 Elasticsearch 商業通用版,1核2G首月免費 阿裡雲 Elasticsearch 日志增強版,首月六折,年付六折 阿裡雲 Logstash 2核4G首月免費
【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)
【Elasticsearch 入門公開課】在Docker環境中,實操詳解 ELK 基本概念-回顧篇(2)