1. 程式人生 > >死磕 Elasticsearch 方法論:普通程式設計師高效精進的 10 大狠招!(Elasticsearch教程式章)|MVP講堂

死磕 Elasticsearch 方法論:普通程式設計師高效精進的 10 大狠招!(Elasticsearch教程式章)|MVP講堂

作者:阿里雲MVP 銘毅

下節連結:
Elasticsearch學習,請先看這一篇!

開篇

人工智慧、大資料快速發展的今天,對於 TB 甚至 PB 級大資料的快速檢索已然成為剛需。Elasticsearch 作為開源領域的後起之秀,從2010年至今得到飛躍式的發展。 Elasticsearch 以其開源、分散式、RESTFul API 三大優勢,已經成為當下風口中“會飛的豬”。

阿里雲2018年2月5日已開價50-200W年薪招聘技術人員參與 Elasticsearch、Lucene 核心優化、改進。如果說,你錯過了 Hadoop,錯過了 Spark 的紅利,難道 Elasticsearch 的機會你還要錯過嗎?

在學習 Elasticsearch 的過程中,你是不是多多少少有以下困惑:

面對 Elasticsearch1.X,2.X,5.X,6.X 的不同版本,你無從下手?

面對 ElasticStack(Elasticsearch、Logstash、Kibana、Beat),你不知道從何學起?

面對各種技術文件(官方的及非官方的),你是否感到非常困惑?

面對 Elasticsearch 出現的各種異常、Bug,好不容易找到一個技術群或提問,又沒人解答?

市面上的書籍分兩種:老外的原理透徹,但版本過時;國內的版本稍新、但不透徹,你是不是很迷茫……

本文

不談搜尋引擎的原理;

不談倒排索引的原理;

不談樂觀鎖、悲觀鎖的機制;

……

只談

從產品開發、專案實戰的角度,如何讓一個 Java 程式設計師甚至 C/C++ 的程式設計師快速上手。

海量的版本中,告訴你明確的選擇。

ELKStack 技術體系,你的學習優先順序。

ELK 技術體系架構。

ELK 技術棧的應用場景。

有了傳統關係型資料庫(MySQL、Oracle)、非關係型資料庫(Mongo),如何快速的匯入 Elasticsearch,實現全文檢索。

Elasticsearch 實戰中遇到問題,如何高效解決。

Elasticsearch 叢集部署。

Elasticsearch 叢集調優清單。

Elasticsearch 高效進階方法論。

……

橫掃你學習 Elasticsearch 的諸多疑惑,讓你少走半年彎路!

ELK Stack 認知

考慮到有初學的朋友,先對 ELK Stack 的認知咱們達成共識。

ELK Stack 由最早期的最核心的 Elasticsearch(以下部分簡稱ES),集合 Logstash、Kibana、beats 等發展而來,形成 ELK Stack 體系。如下圖所示。

image

Elasticsearch 認知

Elasticsearch 為開源的、分散式、基於 Restful API、支援 PB 甚至更高數量級的搜尋引擎工具。

相對於 MySQL,給出如下的對應關係表會更好理解。
image

從上表中可以看出:

MySQL 中的資料庫(DataBase),等價於 ES 中的索引(Index)。

MySQL 中一個數據庫下面有 N 張表(Table),等價於1個索引 Index 下面有 N 多型別(Type)。

MySQL 中一個數據庫表(Table)下的資料由多行(Row)多列(column,屬性)組成,等價於1個 Type 由多個文件(Document)和多 Field 組成。

MySQL 中定義表結構、設定欄位型別等價於 ES 中的 Mapping。舉例說明,在一個關係型資料庫裡面,Schema 定義了表、每個表的欄位,還有表和欄位之間的關係。與之對應的,在 ES 中,Mapping 定義索引下的 Type 的欄位處理規則,即索引如何建立、索引型別、是否儲存原始索引 JSON 文件、是否壓縮原始 JSON 文件、是否需要分詞處理、如何進行分詞處理等。

MySQL 中的增 insert、刪 delete、改 update、查 search 操作等價於 ES 中的增 PUT/POST、刪 Delete、改 _update、查 GET。其中的修改指定條件的更新 update 等價於 ES 中的 update_by_query,指定條件的刪除等價於 ES 中的 delete_by_query。

MySQL 中的 group by、avg、sum 等函式類似於 ES 中的 Aggregations 的部分特性。

MySQL 中的去重 distinct 類似 ES 中的 cardinality 操作。

MySQL 中的資料遷移等價於 ES 中的 reindex 操作。

以上,通過類比,能加快理解 Elasticsearch 的速度。

如下是傳統的關係型資料庫(如Oracle、MySQL)、非關係型的資料庫(如 Mongo)所做不到的:

1.傳統的關係型資料庫雖然能支援型別“like 待檢索詞”模糊語句匹配,但無法進行全文檢索(分詞檢索)。

這裡的全文檢索,舉例如下。

"text":"公路局正在治理解放大道路面積水問題",對於這段待檢索的文字,經過細粒度分詞後能得出如下的分詞結果:

公路局、公路、路局、路、局正、正在、正、治理、治、理解、理、解放、解、放大、大道、大、道路、道、路面、路、面積、面、積水、積、水、問題

如果進行全文檢索,是針對以上分詞後的結果逐個進行匹配,並由得分的高低快速的返回匹配結果。

這點,傳統資料庫幾乎不可能做到。

2.非關係型資料庫 Mongo 雖能進行簡單的全文檢索,但對中文支援的不好、資料量大效能會有問題,這點是在實際應用中總結出的。

**Logstash 認知
**

可以把 Logstash 理解成流入、流出 Elasticsearch 的傳送帶。

支援:不同型別的資料或實施資料流經過 Logstash 寫入 ES 或者從 ES 中讀出寫入檔案或對應的實施資料流。

包括但不限於:

本地或遠端檔案;

Kafka 實時資料流——核心外掛有 logstashinputkafka/logstashoutputkafka;

MySQL、Oracle 等關係型資料庫——核心外掛有 logstashinputjdbc/logstashouputjdbc;

Mongo 非關係型資料庫——核心外掛有 logstashinputmongo/logstashoutputmongo;

Redis 資料流;

……

Kibana 認知

Kibana 是 ES 大資料的圖形化展示工具。集成了 DSL 命令列檢視、資料處理外掛、繼承了 x-pack(收費)安全管理外掛等。

Beats 認知

Beats 是一個開源的用來構建輕量級資料彙集的平臺,可用於將各種型別的資料傳送至 Elasticsearch 與 Logstash。

Beats目前有官方支援的多個子產品,如下:

Packetbeat:用於監控區域網內伺服器之間的網路流量資訊;

Filebeat:收集伺服器上的日誌資訊——它是用來替代 Logstash Forwarder 的下一代 Logstash 收集器,是為了更快速穩定輕量低耗地進行收集工作,它可以很方便地與 Logstash 還有直接與 Elasticsearch 進行對接。

新推出的 Metricbeat,可以定期獲取外部系統的監控指標資訊。 除了以上三個核心產品外,還有:Winlogbeat(Windows事件日誌輕量級工具)、Auditbeat(審計資料的輕量級工具)、Heartbeat(用於時間監控的輕量級工具)。 除此以外,你還可以非常方便的基於 libbeat 框架來構建你屬於自己的專屬 Beat。

小結

通過以上的介紹,我們對 ELK Stack 中的核心成員:Elasticsearch、Logstash、Kibana、Beats 是什麼以及能幹什麼有了相對一致的認知。

海量的版本中,告訴你明確的選擇

ELK 歷史版本更迭

Elasticsearch 於2010年提交到 GitHub。

2010年2月8日推出了 V0.4.0 的發行版本,2010年2月12日推出 V1.0.0 版本,2016年2月2日推出 V1.7.5 版本, 此為 1.X 最終版本,不再更新。

2015年10月28日推出 V2.0.0 版本,2017年7月25日推出 V2.4.6 版本,此為 2.X 最終版本,不再更新。

2016年10月26日推出 V5.0.0 版本,2018年2月20日推出 V5.6.8 版本,此並不是 5.X 的最終版本,還在更新中……

2017年11月14日推出 V6.0.0 版本,2018年2月20日推出 V6.2.2 版本。

……

Elasticsearch 版本更新還在持續迭代進行中。

從以上更新我們也能得出,ES5.X 的末期版本和 ES6.X 的初期版本時間存在重疊。

在 Elasticsearch5.X 之前的版本中,Kibana 和 Logstash 各有自己的一套版本管理體系。如 Kibana4.X 對應 Elasticsearch2.3.X。

為統一規範化版本管理,Elasticsearch 躍過 3.X 大版本、4.X 大版本,直接和 Kibana、Logstash、Feat 升級為相同的 5.X、6.X 乃至以後的 7.X 版本。

ELK Stack的版本歷史檢視參見這裡。

ELK Stack 版本的選擇

新手直接選擇最新版本

如果你是初次接觸 Elasticsearch,建議從最新版本學起,當前最新的版本為 V6.2.2。

新版本的優點有:

由於 ELK 都是開源的,歷史版本發現的問題,GitHub 上的 issue 都已經得到解決;

新的大版本往往都做過比較大的改動。

比如 5.X 版本較之前的 2.X、1.X 等歷史版本,做過很大的改動——5.X 的字串型別區改為分詞相關的 text 和不區分分詞的 keyword,不再使用 string 型別。

比如 Elasticsearch6.X 較 5.X,不再支援1個 index 下有多個 type,而是變成嚴格意義的一對一的關係。

新版本的缺點有:

最新版本 Elasticsearch 外掛的支援可能沒有那麼好;

新特性未被實際的生產環境做過最充分驗證。

權衡以上優缺點,如果能接受新版本的缺點,那麼使用最新的 Elasticsearch 版本是最好的選擇。

再明確點說:

如果你是第一次接觸 ELK Stack,建議你直接使用最新版本的。截止2018年2月22日,最新版本為 V6.2.2。

如果你之前的專案/產品或自學的過程中,接觸過早期的版本 1.X、2.X,一方面為了提升效能,建議升級為最新的版本,另一方面,由於各種外部原因(如程式碼升級成本高、業務系統已經穩定等),建議也要抽時間瞭解 Elasticsearch 的新版本的新特性。因為,這些新特性都是前人遇到坑的相對最優解決方案的優化後的結果。

5.X 哪個版本相對穩定?

根據一位攜程架構師 wood 於2017年11月29日表示的,生產環境 5.3.2 有大規模部署,穩定性還不錯。測試環境也有部署 5.6.4,目前也沒發現什麼不穩定的問題。

不建議再以2.X、1.X或更早的版本進行學習。

主要基於以下三點原因:

從版本歷史可以看出,近7年多的 ELK Stack 得到長足的發展。

早期版本的一些設計缺陷歷史問題、一些開源社群 Bug,在新版本都已經糾正。

新版本在效能方面也得到較大幅度的提升。

小結

本小節主要探討了 ELK Stack 版本更迭歷史,掃除你版本選型的困惑。

ELK Stack 的應用場景

ELK Stack基礎應用場景

場景一:使用 ES 作為業務系統的後端。

此時,ES 的作用類似傳統業務系統中的 MySQL、PostgreSQL、Oracle 或者 Mongo 等的基礎關係型資料庫或非關係型資料庫的作用。

我們舉例說明。使用 ES 對基礎文件進行檢索操作,如將傳統的 word 文件、PDF 文件、PPT 文件等通過 Openoffice 或者 pdf2htmlEX 工具轉換為 HTML,再將 HTML 以JSON 串的形式錄入到 ES,以對外提供檢索服務。

場景二:在原有系統中增加 ES、Logstash、Kibana等。

原有的業務系統中存在 MySQL、Oracle、Mongo 等基礎資料,但想實現全文檢索服務,就在原有業務系統基礎的加上一層 ELK。

舉例一,將原有系統中 MySQL 中的資料通過 logstashinputjdbc 外掛匯入到 ES 中,並通過 Kibana 進行圖形化展示。

舉例二,將原有儲存在 Hadoop HDFS 中的資料匯入到 ES 中,對外提供檢索服務。

場景三:使用 ELK Stack 結合現有工具對外提供服務。

舉例一,日誌檢索系統。將各種型別的日誌通過 Logstash 匯入 ES 中,通過 Kibana 或者 Grafana 對外提供視覺化展示。

舉例二,通過 Flume 等將資料匯入 ES 中,通過 ES 對外提供全文檢索服務。

場景四:其他綜合業務場景

主要藉助 ES 強大的全文檢索功能實現,如分頁查詢、各類資料結果的聚合分析、圖形化展示(餅圖、線框圖、曲線圖等)。

舉例說明,像那些結合實際業務的場景,如安防領域、金融領域、監控領域等的綜合應用。

小結

本小節主要探討了 ELK Stack 三種基礎應用場景和一種擴充套件綜合應用場景,讓你對 ES 的應用有個全域性的認知。

**ELK Stack 你的學習優先順序

ELK Stack 學習優先順序**

我建議 Elasticsearch 為第一優先順序。需要掌握的內容如下。

(1)掌握 Elasticsearch 的基本概念,主要包括:

索引(index)

型別(type)

對映(mapping)

文件(document)

倒排索引原理

文件打分機制

叢集(cluster)——單節點、叢集安裝與部署

健康狀態(red/yellow/green)

資料儲存

資料型別(long/date/text、keyword/nested等)

資料展示(結合Head外掛的基礎視覺化)

……

(2)掌握 Elasitcsearch 的基本操作,主要包括:

新增(insert)

刪除(delete/deletebyquery)

修改(update/updatebyquery)

查詢(search)

精確匹配檢索(term、terms、range、exists)

模糊匹配檢索(wildcard、prefix、negix正則)

分詞全文檢索(match/match_phrase等)

多條件 bool 檢索(must/must_not/should多重組合)

分詞(英文分詞、拼音分詞、中文分詞)

高亮

分頁查詢

指定關鍵詞返回

批量操作 bulk

scroll 查詢

reindex 操作

……

(3)掌握 Elasticsearch 高階操作,主要包括:

聚合統計(數量聚合、最大值、最小值、平均值、求和等聚合操作)

影象化展示(hisgram 按照日期等聚合)

聚合後分頁

父子文件

陣列型別

nested 巢狀型別

ES 外掛錯誤排查(叢集問題、檢索問題、效能問題)

ES 效能調優(配置調優、叢集調優等)

……

(4)掌握 Elasticsearch Java/Python 等API,主要包括:

Elasticsearch 原生自帶 API、JEST、Springboot 等 API 選型

Elasticsearch 多條件 bool 複雜檢索 API

Elasticsearch 分頁 API

Elasticsearch 高亮 API

Elasticsearch 聚合 API

Elasticsearch 相關 JSON 資料解析

……

(5)Elasticsearch 結合場景開發實戰,主要包括:

資料視覺化(Kibana、Grafana 等 其中 Grafana 比較適合監控類場景)

通過 logstash/beats 等匯入資料

Elasticsearch 和 Kafka 結合的應用場景

Elasticsearch 和 Mongo 結合的應用場景

Elasticsearch 和 Hadoop 結合的應用場景

結合業務需求的定製化應用場景(日誌分析、文件檢索、全文檢索、金融等各行業檢索)

……

建議的第二學習優先順序為 Kibana。需要掌握的內容如下。

Kibana 安裝與部署

ES 節點資料同步到 Kibana

Kibana Dev Tools 開發工具熟練使用

Kibana 影象化組合展示

將 Kibana 影象化展示效果圖應用到自己的開發環境中

……

第三學習優先順序為 Logstash。需要掌握的內容如下。

Logstash 的安裝與部署

Logstash 將本地檔案匯入 ES

logstashinputjdbc 外掛(5.X後無需安裝)將 MySQL/Oracle 等關係型資料庫資料匯入 ES,全量匯入和增量匯入實現。

logstashinputmongo外掛將 Mongo 資料匯入 ES

logstashinputkafaka 外掛將 Kafak 資料匯入 ES

logstashoutput* 外掛將 ES 資料匯入不同的資料庫和實時資料流中

……

第四學習優先順序為 Beats。需要掌握的內容如下。

不同型別的 Beats 安裝與部署

將業務資料通過 Beats 匯入 ES

……

小結

本小節詳細講述了 Elasticsearch 由初級到高階逐步深入的學習優先順序,以及 Kibana、Logstash、Beats 的實踐優先順序,使得你的基礎和進階學習不再迷茫。

Elasticsearch 高效進階方法論

掌握最高效工具

推薦以下幾種。

1.Kibana 工具

除了支援各種資料的視覺化之外,最重要的是支援 Dev Tool 進行 RESTFUL API 增刪改查操作。比 Postman 工具和 cURL 都要方便。如下面圖所示。

image

image

2.head 外掛

可實現 ES 叢集狀態檢視、索引資料檢視、ES DSL 實現(增、刪、改、查操作),比較實用的地方是 JSON 串的格式化。如下圖所示。

image

3.Cerebro 工具

用於實現 ES 叢集狀態檢視(堆記憶體使用率、CPU使用率、記憶體使用率、磁碟使用率)。如下圖所示。

image

4.ElasticHD工具

其強勢功能包括支援 SQL 轉 DSL,不要完全依賴,可以借鑑用。如下圖所示。

image

image

5.中文分詞工具

比如有 IK分詞、ANSJ分詞、結巴分詞。網上還有結巴分詞的其他最新版本。

在這裡建議選用 IK 分詞,原因有以下幾點:

IK 分細粒度 ikmaxword 和粗粒度 ik_smart 兩種分詞方式。

IK 更新字典只需要在詞典末尾新增關鍵詞即可,支援本地和遠端詞典兩種方式。

IK 分詞外掛的更新速度更快,和最新版本保持高度一致。

6.類 SQL 查詢工具

在此,推薦 elasticsearch-SQL,其支援的 SQL,極大縮小了複雜 DSL 的實現成本。

通過 elasticsearch-SQL 工具可以基於以下 SQL 語句方式請求 ES 叢集。

select COUNT(*),SUM(age),MIN(age) as m, MAX(age),AVG(age)FROM bank GROUP BY gender ORDER BY SUM(age), m DESC

7.測試工具

在原來執行的 DSL 的基礎上新增 profile 引數,我把它稱作“測試工具”。

profile API的目的是,將 ES 高層的 ES 請求拉平展開,直觀的讓你看到請求做了什麼,每個細分點花了多少時間。

profile API給你改善效能提供相關支撐工作。

使用舉例如下:

GET /_search
{ "profile": true, "query" : { "match" : { "message" : "message number" }
}
}

  1. ES 效能分析工具

推薦 rally。相比傳統的發包請求測試工具,rally 更加直觀和準確、且指標很豐富。

升級認知,不要懼怕新知識

我整理了以下幾個常見的問題,並做出了回覆。

**Q:沒有 Lucene 基礎,能不能學習 Elasticsearch?
**
A:這個完全不需要Lucence基礎的,遇到了相關底層問題,再回頭查Lucene基礎完全可以。

Q:C/C++ 程式設計師,能不能進行 Elasticsearch 開發?

A:這個問題就是 C/C++ 轉 Java 的問題,幾乎沒有難度。

Q:Elasticsearch 如何部署(Linux、Windows等)?

A:如果沒有 Linux 環境,Windows 搭建 Demo 無可厚非;如果有 Linux 環境,請不要在 Windows 上浪費時間,沒有必要。

如果作為業務系統對外提供服務,建議至少搭建到配置相對高 Linux 伺服器(CPU24核心以上、記憶體64GB以上、磁碟1TB左右以上)上。

現在各種新技術(VR、AR、深度學習、區塊鏈技術等)層出不窮,但大神劉未鵬告訴我們“底層的技術永遠不過時”, 對於 Elasticsearch 而言,倒排索引、打分機制、全文檢索原理、分詞原理等底層技術屬於“永遠不過時”的技術,要深究。

相信這點,由淺入深夯實基礎,各種看似複雜的問題回頭再去看都是“小Kiss”。

**

找最快的方法
**

現身說法,我曾經對 Jest 使用摸索了很久。久久不能知道正確使用的方式。

最終發現,GitHub 官網的 readme.md 上面提供了詳盡的說明,其他地方找的資料都是徒勞。

我的反思中,不要讀別人的二手、三手的翻譯資料,直接參考官網來的更快。

不要懼怕英文,看似最難的,往往是最快的。

在這點,ES 相關 API 的使用更是如此。比如,ES 的聚合後分頁等操作實現,在官網 API 的介紹中都有詳盡的描述。

**相信社群的力量
**

首先推薦幾個英文社群。

優先順序1:Google

英文能解決的,效率往往會很高。某度差的非常遠。

例如,我在2018年2月23日遇到的叢集狀態為紅色的解決方案。在 Google 輸入關鍵詞:elasticsearch ALLOCATION_FAILED,Google 搜尋就能很快定位到叢集狀態為紅色的解決方案。

優先順序2:Elasticsearch 英文官方論壇

問題回答得都很深入,需要翻到底,結合 Google 翻譯 translate.google.cn(無需翻牆)檢視。

優先順序3: Stack Overflow

一些問題的版本比較老,1.X 或者 2.X,不過問題的解決思路可以參考。

優先順序4:GitHub

注意,GitHub的 issue 上有很多問題的解決方案,不要忽略了。

接著看一下中文社群,這裡主要推薦 www.elasticsearch.cn 的 Elastic 中文社群。

相信你也會說有 CSDN 中文問答社群、Segmentfault 社群、相關 QQ 群、微信群等。

但是,我要說的是,畢竟 Elastic 中文社群是目前國內最專業的 ELK Stack 技術交流平臺,這裡的問題回覆率非常快、有多位大牛常駐、質量非常好。

更為重要的是,每天都會有 ES 頂級大牛為你遴選最新的、最專業的 Elasticsearch 日報。

再強調一下,Elasticsearch 日報是最好的學習 ELK Stack 技術的方式,沒有之一。

站在巨人的肩上

這裡推薦兩位 ELK Stack 領域大牛 Medcl 和 攜程 Wood 大神。

Medcl,Elasticsearch 佈道者、ES 員工、中國最早接觸 ES 的人、ES-IK 開源分詞外掛作者、gopa 開源爬蟲作者。

攜程 Wood 大神,他的文章質量都是原始碼級實戰剖析的結果,很深入、非常實用。

如何向兩位大神學習呢?

方法一:精準方法。關注他們在 Elasticsearch 中文社群發表過的文章和回覆過的問題,一個個的過一遍。

方法二:沒有辦法的辦法——技術難題向他倆進行提問。

ELK Stack學習指南清單

主要包含:

《Elasticsearch 全文指南》英文官網文件,待更新。

《Elasticsearch 全文指南》中文官網文件,請注意版本基於2.X,相關技術可以參考。

Elasticsearch 6.2 最新版本 JavaAPI 文件集合,請注意,各種 API 的使用很詳盡,最上方有搜尋按鈕,可以輸入關鍵詞搜尋。

Elasticsearch5.X 必知必會清單,還有中文版。

此清單言簡意賅,非常實用。

形成問題清單

學習和實踐 ELK Stack 的過程中,勢必會遇到很多問題,這些問題當時解決了,回頭還可能會遇到。

建議形成自己專屬的問題清單,記錄各種遇到的問題。

比如,ELK 叢集搭建部署清單、ELK 上線清單、ELK 叢集優化清單、ES 聚合操作清單、ELK 常見問題排查清單。

這種思維方式來源於《清單革命》這本醫學領域的鉅著,對於我們學習 ELK Stack 也非常有幫助。

形成屬於自己的技術積累

問題清單是技術積累的一小部分內容,這裡的技術積累還包括:

原理的透徹理解和積累——可以畫畫圖、畫成腦圖、形成文字或部落格加深印象。

bool 組合查詢語句、聚合語句 DSL 的積累——積小成多,慢慢的效率就提升了。

相關問題的排查思路、解決方案積累——形成問題排查集合。

大牛就是菜鳥解決了無數個問題逐步積累的結果。

**推薦書籍
**

主要有以下兩本。

《這就是搜尋引擎》——博士著作,對基礎搜尋引擎的原理解析的非常透徹,原理都有一定難度。

《深入理解 Elasticsearch》第二版,國外著作,原理解釋的很透徹,就是版本有點舊。

推薦視訊教程

推薦觀看《Elasticsearch 頂尖高手系列-高手進階篇》視訊教程,版權原因,不提供下載連結,可以通過百度網盤搜尋工具免費下載。

原理解釋的相對詳細,可以加快速度過一過。

部落格或公眾號推薦

主要推薦以下公眾號和部落格。

公眾號1:西加加語言——自己寫了一套搜尋引擎,原理很深入,ES 大神給我推薦的。

公眾號2:GinoBeFunny——前阿里巴巴員工的技術公眾號,裡面一些 ES 文字都很深入。

公眾號3:銘毅天下——死磕 Elasticsearch(分為:基礎、進階、實戰等幾個部分),更新週期相對快。

部落格1:姚攀的部落格,博文系列已經出書。

部落格2:銘毅天下,部落格中的《深入詳解 Elasticsearch》專欄已經有出版社聯絡出書。

小結

以上,是我近3年 ELK Stack 學習和實踐經驗的總結,歷時大於10個小時。

ELK 的兩個近200萬的中大型專案經歷使得我明白:“必須要實踐、實踐出真知”,你的想法再多、思路再清晰都要轉換為 ES 的 DSL、Kibana 的視覺化、Logstash 的配置檔案進行反覆實戰來驗證和調優。

經過以上招數,相信你實戰中遇到問題,都能快速找到方法、高效解決。

下節連結:
Elasticsearch學習,請先看這一篇!

作者介紹:
1、阿里雲MVP;
2、CSDN部落格專家、CSDN2013年、2016年部落格徵文大賽特等獎得主;
[銘毅天下]CSDN部落格博主];CSDN部落格排名:前700,閱讀量1600000+;其中,《深入詳解Elasitcsearch》專欄閱讀量500000+;
[銘毅天下]公眾號作者。
[死磕Elasticsearch]知識星球發起人。
3、Elasticsearch中文社群(www.elasticsearch.cn)Elastic日報責任編輯;
4、程式設計師、網路工程師、高階工程師(資訊系統專案管理師)、計算機應用技術碩士;
5、理想主義者、終身學習者、終身成長者;
6、篤信堅持、積累的力量;自1997年——至今20年+持續思考、積累、總結,從未間斷;
7、個人信條:人因為夢想而偉大,機遇永遠屬於那些有準備、立即行動並堅持到底的人!
自由不是你想幹什麼就幹什麼;而是你不想幹什麼就有能力不幹什麼!