天天看點

一個 70 後運維老兵的 Elastic 認證工程師之路

Elasticsearch 最少必要知識實戰教程直播回放

一個 70 後運維老兵的 Elastic 認證工程師之路

1. 緣起

我接觸 ES 的時間大約是2017年,最初是小打小鬧,隻是搭了個小的demo環境,用ES來存儲給裝置日志外加用Kibana做一些簡單的可視化展示,自我娛樂和研究而已, 對于ES本身的知識也隻是限于碎片化的學習。

2018~2019年是個逐漸井噴的階段,那時候公司有幾個千億級日志收集和處理的項目開始上馬,我作為​

​項目架構師​

​,自然要對Elastic stack玩得更加精深一點,于是便決心想要體系化的學習一下。正好在2019年7月極客時間推出了阮一鳴的ES7.1的視訊課,那時便毫不猶豫的買了下來,2019年9月開始被assign到一個AIOps的項目中去,是以之後也隻是斷斷續續的學習。

但也正是在那個AIOps的項目中,我對ES這個強大的資料平台及其與上下遊周邊系統的關系有了更加清晰的認識,今年年初老闆同我談起建設運維自動化平台的想法,于是想要拿下Elastic 認證的決心也就堅定了下來。

2. 準備過程

Elastic 認證在業内素來有着​

​難通過​

​​的“惡名”,而且因為考的全是​

​實操題​

​,是以如果自己沒有動手實踐的經驗是肯定不能通過考試的。3個小時10個大題,每個題目必須分秒必争,也就意味着必須對ES中的各種概念有着非常深刻的理念,并且知道他們出現在官方文檔的什麼位置才行。抱着這個認識,我的複習準備之路一共分為3個階段。

2.1  5月16日 到6月15日 第一階段

今年5/1考完CKA認證後,便決心攻下Elastic 認證。因為平時從事的是架構師方面的工作,是以工作側重點比較多在ES的運維和容量規劃等方面,而對于搜尋,聚合這些,乃至寫DSL語句等,操練的沒有那麼多,其中的有些概念之前也隻是有個了解,是以第一階段的複習我對自己的目标是“夯實基礎”。

ES 的文檔雖然很成體系,但也正因為文檔繁多,是以新手直接盲目看文檔會很容易迷失,造成越看越多,最後往往會不了了之。是以我複習時主要采用的是以下兩個材料:

  • 阮一鳴在極客時間的ES視訊課
  • B站上的中華石杉的的視訊

阮老師的課優勢在于覆寫面廣,Elastic 認證考試的所有知識點全部都覆寫到了,而且偏重實踐。但也許是因為受限于每個視訊課的時間不能超過15分鐘的關系,是以每堂課的節奏非常快,往往一節課裡包含很多知識點,這對于之前沒有太接觸過某個知識點的話挑戰會比較大,可能要反反複複觀看才行。

遇到這種情況,中華石杉的講解就是一個很好的輔助。中華石衫的課相對更加是理論和實踐并重,是以有些知識點講解的比較透,等看完了,了解了,再回去看阮一鳴的課,就會有高屋建瓴的感覺。

在觀看課程以後,我也做了大量的筆記。。Elastic 認證考試的覆寫面是相當廣泛的,比如光是DSL查詢語句在各種情況下的用法這一個知識點就很複雜,牽涉面很廣。這個時候,做筆記是個很重要的幫助自己了解和消化的過程 。Microsoft Onenote是個很好的筆記軟體,各個裝置之間同步很友善,友善随時随地查閱。

光看,光記,但不動手是絕對不行的。任何一個IT技術都是​

​實踐動手​

​​的過程。阮一鳴的每堂課上的測試用例是很好的練習素材,我對自己的要求是每個case的代碼至少敲過3遍以上, Kibana提供的3個​

​sample data​

​也是很好的資料源,友善來練習查詢和聚合。

就這樣反反複複,在不停的觀看——練習——觀看——練習——查閱——練習的過程中,一個月的時間過去了,等到了6月中的時候,我把對Elastic 認證的主要考點都基本過了一遍,到最後幾乎可以擺脫文檔來徒手寫各種查詢,聚合和API操作語句。基本實作了最初定下的“夯實基礎”這一目标。

2.2   6月中旬到6月25日,集中練習

因為平時工作比較忙,是以練習的時間大多集中在晚上10點到淩晨1點這3個小時裡。這裡要特别感謝銘毅在“​

​知識星球​

​​”上建立的“​

​死磕Elasticsearch​

​”這個版塊,彙聚了大量的同道學友,以及許多針對性的練習,特别是德國博士的那個幾十頁的練習材料是非常有幫助的,價值不言而喻。

這段時間裡我基本上就是把德國博士的這套練習題完整做了一遍,并且對照銘毅的答案進行了比對和強化,有時候我的想法和思路和銘毅的不完全一緻,我會私下和銘毅交流,很多時候大家是​

​殊途同歸​

​​,隻是哪種方法更加嚴謹而已。交流和練習的過程是一個迅速提升的過程,在此也要再次感謝​

​銘毅​

​給到的幫助。

2.3  沖刺收官 (端午節3天)

端午節放假3天,我悶頭在家敲了3天的代碼,主要是把幾個前輩的考試經驗貼全部看了一遍,對于他們文章裡提到的題目和考點,自問自答的回想了一遍,并且在Kibana中敲出代碼,最後做到可以完全不依賴查詢官方文檔徒手寫出。

這裡要提下ES的Painless腳本。很多人把寫無痛腳本視為畏途。也許是因為早在讀書的時候就學習了好幾個語言,有一些程式設計基礎,和資料結構基礎,是以我倒并沒有覺得Painless腳本有多難。其實搞懂3種場景下的用法就足以應對考試中的要求了,我差不多花了半天的時間把這塊全部看完,重點是看了官方文檔上的“walk through with painless script”章。另外特别推薦如下兩篇文章, 是官方文檔以外,特别值得參考學習的。

  1. 虎哥的Painless script在ElasticSearch 中的使用的一些問題

​​https://www.jianshu.com/p/7518dccc0bcf​​

3. 臨場考試重要tips:

3.1 油管上有ES官方的兩個視訊,介紹了考試的環境,考查的知識點。

建議考前一定要看,對于熟悉考試環境很有幫助。

3.2 隻要條件允許,一定要用外接的大螢幕顯示器。

不要問為什麼。我能說我這次考試幾乎就差點栽在了沒有大螢幕顯示器上,用筆記本上的小螢幕去參加考試,3小時下來,幾乎把我眼睛都看瞎了。

考試環境是用Chrome浏覽器連結到一個虛拟桌面上,但不知是不是刻意的限制,那個虛拟桌面的分辨率很低,從筆記本的小螢幕上看考題幾乎是模糊一片。加上考官會要求你不能離電腦做的太近,這就造成題目更加看的不是很清楚。

我這次就因為經常湊近螢幕看考題,被考官​

​中斷​

​考試3次,最後警告說坐得如果再不端正,就terminate我的考試。于是我在及其不舒服的坐姿,以及朦朦胧胧的視覺效果中,花了2個小時才完成了考試。隻能說幸虧考前準備的充足,幾乎做到可以完全擺脫文檔,否則如果還要用哪個那麼低的分辨率的虛拟桌面來查閱文檔,會是雪上加霜。

3.3  考試中我用Kibana圖形界面來添加RBAC和使用者總是報“unauthorized ”的錯誤。

但我可以肯定elastic和Kibana這兩個賬号的密碼是設定正确了的。

考試中這個問題困擾了我一段時間,乃至不得不跳過先做其他的題目。等做完所有的考題再回頭來想,靈機一動,圖形界面不行,那幹嘛不試試直接調用 ​

​Xpack API​

​呢。最後通過指令行解決完成這個RBAC賦權的題目。

4. 重要題目回顧

  • Shard allocation filter配置,ES叢集冷熱配置,最終目标是確定分片在規定的節點上,并保證叢集是Green
  • 啟用ES的安全配置功能,修改内置賬号的密碼,建立一個第三方的使用者,并且為該使用者賦權。
  • 聚合。找出每個月的最大震級和深度
  • 一個布爾查詢,要求高亮查詢結果,并且對指定關鍵字進行排序。注意match phrase
  • 一個多字段查詢,傳回的評分結果是各個字段的總和。注意boost針對特定索引的作用。
  • Pipeline + Update_by_query, 對某個索性增加一個字段,該字段的内容是其他3個字段的連接配接
  • Reindex+自定義分詞,確定對兩個不同的term,傳回的評分和結果數量是一緻的。重點是Char_filter, 和自定義mapping。
  • Dynamic mapping template

5.  後記

5.1  考過了隻是萬裡長征走完了第一步。

如果這一步也值得驕傲的話,那是比較渺小的。考過了隻能說明實踐能力強,最多還能說明學習能力強。離成為一個ES專家還有很多的距離,「學無止境」,更高的目标還在前面。

5.2  下一步的學習計劃:

把中華石衫的視訊中的理論部分在深入研究一下,對于提高對 ES 的整體了解很有幫助。

源碼解析和實戰這本書需要攻讀。

把所學的運用到工作實踐和給客戶的設計中,「學以緻用」這個是永遠的“王道”。

争取拿下Kibana Data analyst認證。因為運維自動化平台的建設中的重點之一就是資料可視化,取得這個認證也是檢驗自己學識的展現。

繼續閱讀