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

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

  1. 緣起
    我接觸 ES 的時間大約是2017年,最初是小打小鬧,只是搭了個小的demo環境,用ES來存儲給設備日誌外加用Kibana作一些簡單的可視化展現,自我娛樂和研究而已, 對於ES自己的知識也只是限於碎片化的學習。

2018~2019年是個逐漸井噴的階段,那時候公司有幾個千億級日誌收集和處理的項目開始上馬,我做爲項目架構師,天然要對Elastic stack玩得更加精深一點,因而便決心想要體系化的學習一下。正好在2019年7月極客時間推出了阮一鳴的ES7.1的視頻課,那時便絕不猶豫的買了下來,2019年9月開始被assign到一個AIOps的項目中去,因此以後也只是斷斷續續的學習。編程

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

  1. 準備過程
    Elastic 認證在業內素來有着難經過的「惡名」,並且由於考的全是實操題,因此若是本身沒有動手實踐的經驗是確定不能經過考試的。3個小時10個大題,每一個題目必須分秒必爭,也就意味着必須對ES中的各類概念有着很是深入的理念,而且知道他們出如今官方文檔的什麼位置才行。抱着這個認識,個人複習準備之路一共分爲3個階段。

2.1 5月16日 到6月15日 第一階段
今年5/1考完CKA認證後,便決心攻下Elastic 認證。由於平時從事的是架構師方面的工做,因此工做側重點比較多在ES的運維和容量規劃等方面,而對於搜索,聚合這些,乃至寫DSL語句等,操練的沒有那麼多,其中的有些概念以前也只是有個瞭解,因此第一階段的複習我對本身的目標是「夯實基礎」。安全

ES 的文檔雖然很成體系,但也正由於文檔繁多,因此新手直接盲目看文檔會很容易迷失,形成越看越多,最後每每會不了了之。所以我複習時主要採用的是如下兩個材料:數據結構

阮一鳴在極客時間的ES視頻課
B站上的中華石杉的的視頻
阮老師的課優點在於覆蓋面廣,Elastic 認證考試的全部知識點所有都覆蓋到了,並且偏重實踐。但也許是由於受限於每一個視頻課的時間不能超過15分鐘的關係,所以每堂課的節奏很是快,每每一節課裏包含不少知識點,這對於以前沒有太接觸過某個知識點的話挑戰會比較大,可能要反反覆覆觀看才行。架構

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

在觀看課程之後,我也作了大量的筆記。。Elastic 認證考試的覆蓋面是至關普遍的,好比光是DSL查詢語句在各類狀況下的用法這一個知識點就很複雜,牽涉面很廣。這個時候,作筆記是個很重要的幫助本身理解和消化的過程 。Microsoft Onenote是個很好的筆記軟件,各個設備之間同步很方便,方便隨時隨地查閱。less

光看,光記,但不動手是絕對不行的。任何一個IT技術都是實踐動手的過程。阮一鳴的每堂課上的測試用例是很好的練習素材,我對本身的要求是每一個case的代碼至少敲過3遍以上, Kibana提供的3個sample data也是很好的數據源,方便來練習查詢和聚合。運維

就這樣反反覆覆,在不停的觀看——練習——觀看——練習——查閱——練習的過程當中,一個月的時間過去了,等到了6月中的時候,我把對Elastic 認證的主要考點都基本過了一遍,到最後幾乎能夠擺脫文檔來徒手寫各類查詢,聚合和API操做語句。基本實現了最初定下的「夯實基礎」這一目標。ide

2.2 6月中旬到6月25日,集中練習
由於平時工做比較忙,因此練習的時間大多集中在晚上10點到凌晨1點這3個小時裏。這裏要特別感謝銘毅在「知識星球」上創建的「死磕Elasticsearch」這個版塊,匯聚了大量的同道學友,以及許多針對性的練習,特別是德國博士的那個幾十頁的練習材料是很是有幫助的,價值不言而喻。學習

這段時間裏我基本上就是把德國博士的這套練習題完整作了一遍,而且對照銘毅的答案進行了比對和強化,有時候個人想法和思路和銘毅的不徹底一致,我會私下和銘毅交流,不少時候你們是異曲同工,只是哪一種方法更加嚴謹而已。交流和練習的過程是一個迅速提高的過程,在此也要再次感謝銘毅給到的幫助。

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

端午節放假3天,我悶頭在家敲了3天的代碼,主要是把幾個前輩的考試經驗貼所有看了一遍,對於他們帖子裏提到的題目和考點,自問自答的回想了一遍,而且在Kibana中敲出代碼,最後作到能夠徹底不依賴查詢官方文檔徒手寫出。

這裏要提下ES的Painless腳本。不少人把寫無痛腳本視爲畏途。也許是由於早在讀書的時候就學習了好幾個語言,有一些編程基礎,和數據結構基礎,因此我倒並無以爲Painless腳本有多難。其實搞懂3種場景下的用法就足以應對考試中的要求了,我差很少花了半天的時間把這塊所有看完,重點是看了官方文檔上的「walk through with painless script」章。另外特別推薦以下兩篇文章, 是官方文檔之外,特別值得參考學習的。

銘毅的Elasticsearch7.X Scripting腳本使用詳解
https://mp.weixin.qq.com/s/PUXVdc5QKt7avXZeugjejA

虎哥的Painless script在ElasticSearch 中的使用的一些問題
https://www.jianshu.com/p/7518dccc0bcf

  1. 臨場考試重要tips:
    3.1 油管上有ES官方的兩個視頻,介紹了考試的環境,考查的知識點。
    建議考前必定要看,對於熟悉考試環境頗有幫助。

3.2 只要條件容許,必定要用外接的大屏幕顯示器。
不要問爲何。我能說我此次考試幾乎就差點栽在了沒有大屏幕顯示器上,用筆記本上的小屏幕去參加考試,3小時下來,幾乎把我眼睛都看瞎了。

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

我此次就由於常常湊近屏幕看考題,被考官中斷考試3次,最後警告說坐得若是再不端正,就terminate個人考試。因而我在及其不舒服的坐姿,以及朦朦朧朧的視覺效果中,花了2個小時才完成了考試。只能說幸好考前準備的充足,幾乎作到能夠徹底擺脫文檔,不然若是還要用哪一個那麼低的分辨率的虛擬桌面來查閱文檔,會是雪上加霜。

3.3 考試中我用Kibana圖形界面來添加RBAC和用戶老是報「unauthorized 」的錯誤。
但我能夠確定elastic和Kibana這兩個帳號的密碼是設置正確了的。

考試中這個問題困擾了我一段時間,乃至不得不跳過先作其餘的題目。等作完全部的考題再回頭來想,靈機一動,圖形界面不行,那幹嗎不試試直接調用 Xpack API呢。最後經過命令行解決完成這個RBAC賦權的題目。

  1. 重要題目回顧
    Shard allocation filter配置,ES集羣冷熱配置,最終目標是確保分片在規定的節點上,並保證集羣是Green

啓用ES的安全配置功能,修改內置帳號的密碼,建立一個第三方的用戶,而且爲該用戶賦權。

聚合。找出每月的最大震級和深度

一個布爾查詢,要求高亮查詢結果,而且對指定關鍵字進行排序。注意match phrase

一個多字段查詢,返回的評分結果是各個字段的總和。注意boost針對特定索引的做用。

Pipeline + Update_by_query, 對某個索性增長一個字段,該字段的內容是其餘3個字段的鏈接

Reindex+自定義分詞,確保對兩個不一樣的term,返回的評分和結果數量是一致的。重點是Char_filter, 和自定義mapping。

Dynamic mapping template

  1. 後記
    5.1 考過了只是萬里長征走完了第一步。
    若是這一步也值得驕傲的話,那是比較眇小的。考過了只能說明實踐能力強,最多還能說明學習能力強。離成爲一個ES專家還有不少的距離,「學無止境」,更高的目標還在前面。

5.2 下一步的學習計劃:
把中華石衫的視頻中的理論部分在深刻研究一下,對於提升對 ES 的總體理解頗有幫助。

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

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

爭取拿下Kibana Data analyst認證。由於運維自動化平臺的建設中的重點之一就是數據可視化,取得這個認證也是檢驗本身學識的體現。

更多經驗分享參考:死磕 Elastic 認證

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

相關文章
相關標籤/搜索