ELK的崛起(Rise of the ELK)
前言忽如一夜春風來,千樹萬樹梨花開,恍惚之間,ELK亦是遍地開花,甚至提供類似ELK解決方案的專業公司數量已然可觀。
傳統意義上,ELK是作為替代Splunk的一個開源解決方案。Splunk 是日誌分析領域的領導者。日誌分析並不僅僅包括係統產生的錯誤日誌,異常,也包括業務邏輯,或者任何文本類的分析。而基於日誌的分析,能夠在其上產生非常多的解決方案,譬如:
- 問題排查。我們常說,運維和開發這一輩子無非就是和問題在戰鬥,所以這個說起來很樸實的四個字,其實是沉甸甸的。很多公司其實不缺錢,就要穩定,而要穩定,就要運維和開發能夠快速的定位問題,甚至防微杜漸,把問題殺死在搖籃裏。日誌分析技術顯然問題排查的基石。基於日誌做問題排查,還有一個很帥的技術,叫全鏈路追蹤,比如阿裏的eagleeye 或者Google的dapper,也算是日誌分析技術裏的一種。
- 監控和預警。 日誌,監控,預警是相輔相成的。基於日誌的監控,預警使得運維有自己的機械戰隊,大大節省人力以及延長運維的壽命。
- 關聯事件。多個數據源產生的日誌進行聯動分析,通過某種分析算法,就能夠解決生活中各個問題。比如金融裏的風險欺詐等。這個可以可以應用到無數領域了,取決於你的想象力。
- 數據分析。 這個對於數據分析師,還有算法工程師都是有所裨益的。
ELK之前,有沒有類似解決方案呢? 某大神說是有的,當時應該是基於 Sphinx + Google char的。 Sphinx 對應ES, Google char 對應 Kibana。
那為啥當時它沒有火而現在的ELK火了呢?一種比較玄幻的解釋是:
事實上開源界永遠有多種選擇,比如基於java的lucene的es,也有基於c的lucy的dezi。但是誰火誰不火,真的是一個很玄妙的事情
我覺得原因有很多方麵。一個簡單而較為核心的因數是時機。所謂時勢造英雄是也。
當然,任何一件事情不可能是一個因子引起的,或者我們說時機是一個較為寬泛抽象的因子。
下麵我會嚐試從多個因子去闡述為什麼ELK突然蓬勃發展。
早年能夠產生足夠數據的就那麼一些站點,而現在一個初創的企業可能都需要麵臨海量用戶/海量請求/海量分析的壓力,其中產生的日誌自然也是非常可觀,而隨著業務越來越複雜,微服務重新得到重視,無論係統日誌,還是業務日誌都更進一步了。運維或者開發們發現,我要從這麼大規模的係統中(幾百個上千個服務)產生的這麼多日誌(千億規模),去排查問題,簡直是沒有可能了。以前有這麼大數據量的公司,都是有實力的公司,他們可能有內部專用的係統去處理。然而現在突然成為了一個普遍需求,這個時候ELK順勢而上,也就水到渠成。
開源現在已經融入到IT社區的血液裏。雖然我們說商業,自研,還有開源三者之間是相輔相成,相濡以沫或者偶爾會相愛相殺,但是如果有開源可以選擇,顯然大部分開發或者運維還是首選開源的。有位大牛說的好:
開源及其便利性,開源的好處,學習成本底,招一個人就能培養他開幹,一個內部維護的係統,新人上火總會問題很多;比如要重構還不如重寫,或者不願在人家的代碼基礎上開發
ELK其開源屬性,顯然是比Splunk 略勝一籌的。
有些行業對日誌的依賴是非常大的,比如 CDN 日誌除了能排查錯誤,對其分析還能對CDN調度等很多方麵產生影響,這些都是實打實的經濟效益。
運維本身也在發展,不可能一直在刀耕火種的年代。而日誌對於運維來說,應該算是命根子了。對一個成體係的,標準化的日誌分析方案的需求,也是曆史發展的必然。ELK在恰當的時候產生,運維接受他就是自然而然的了。
引用一位大神的說法:ELK能解決的核心問題,覆蓋麵也廣,標準化,易擴展集成,開發和運維都對其感冒
ELK 本身非常易用,現在也有一個非常好的社區,加上需求如此之大,不火都不行。
大數據的一個很好的副作用是讓機器在某種意義上變得廉價了。少則幾十上百台,多則上萬甚至幾十萬台。服務器數量的急速攀升促進了很多技術的發展,典型的比如現在火的不要不要的深度學習。這就意味著,拿出幾十台,上百台服務器做日誌分析,一點問題也沒有,集中式的日誌分析慢慢成為主流。而ELK也是一個典型的集中式日誌分析方案。
所謂寫入時計算是指將數據經過較為複雜的處理,聚合,得到的結果直接麵向查詢。 寫入時計算規則由查詢需求決定。
隨著存儲格式的不斷進步,譬如列式存儲等的普及,以及強大的計算資源(一個ES集群動則上百台),使得直接存儲原汁原味的數據,然後查詢的時候做各種計算變得可能。而ELK已經提供較為強大的查詢功能。
總體而言,寫入時計算的大方向是往查詢時計算轉化。查詢時計算最大的優勢是支持任意查詢,不丟失信息。
每個時期的軟件們興衰,就像曆史長河中的各個王朝一樣。有百花齊放的時候,也有一統江湖的時候。ELK的崛起,最主要還是大勢造就而成,譬如移動互聯網衝擊,大數據/雲計算的火熱,技術的更新換代,運維/開發群體的不斷的成長。
最後更新:2017-04-01 17:13:51