說說 ELK 火熱的原因?

 

 

前言

忽如一夜春風來,千樹萬樹梨花開;

恍惚之間,ELK亦是遍地開花,提供類似ELK解決方案的專業公司數量已然可觀。

 

一. ELK是什麼?

ELK 是elastic公司提供的一套完整的日誌收集以及展示的解決方案,是三個產品的首字母縮寫,分別是ElasticSearch、Logstash 和 Kibana。

 

  • ElasticSearch簡稱ES,它是一個實時的分佈式搜索和分析引擎,它可以用於全文搜索,結構化搜索以及分析。它是一個建立在全文搜索引擎 Apache Lucene 基礎上的搜索引擎,使用 Java 語言編寫。
  • Logstash是一個具有實時傳輸能力的數據收集引擎,用來進行數據收集(如:讀取文本文件)、解析,並將數據發送給ES。
  • Kibana爲 Elasticsearch 提供了分析和可視化的 Web 平臺。它可以在 Elasticsearch 的索引中查找,交互數據,並生成各種維度表格、圖形。

 

二:ELK的用途

傳統意義上,ELK是作爲替代Splunk的一個開源解決方案。Splunk 是日誌分析領域的領導者。日誌分析並不僅僅包括系統產生的錯誤日誌,異常,也包括業務邏輯,或者任何文本類的分析。而基於日誌的分析,能夠在其上產生非常多的解決方案,譬如:

  1. 問題排查。我們常說,運維和開發這一輩子無非就是和問題在戰鬥,所以這個說起來很樸實的四個字,其實是沉甸甸的。很多公司其實不缺錢,就要穩定,而要穩定,就要運維和開發能夠快速的定位問題,甚至防微杜漸,把問題殺死在搖籃裏。日誌分析技術顯然問題排查的基石。基於日誌做問題排查,還有一個很帥的技術,叫全鏈路追蹤,比如阿里的eagleeye 或者Google的dapper,也算是日誌分析技術裏的一種。
  2. 監控和預警。 日誌,監控,預警是相輔相成的。基於日誌的監控,預警使得運維有自己的機械戰隊,大大節省人力以及延長運維的壽命。
  3. 關聯事件。多個數據源產生的日誌進行聯動分析,通過某種分析算法,就能夠解決生活中各個問題。比如金融裏的風險欺詐等。這個可以可以應用到無數領域了,取決於你的想象力。
  4. 數據分析。 這個對於數據分析師,還有算法工程師都是有所裨益的。

 

三:ELK火熱的原因?

ELK之前,有沒有類似解決方案呢?

某大神說是有的,當時應該是基於 Sphinx + Google char的。 Sphinx 對應ES, Google char 對應 Kibana。

那爲啥當時它沒有火而現在的ELK火了呢?一種比較玄幻的解釋是

事實上開源界永遠有多種選擇,比如基於java的lucene的es,也有基於c的lucy的dezi。但是誰火誰不火,真的是一個很玄妙的事情

我覺得原因有很多方面,一個簡單而較爲核心的因數是時機,所謂時勢造英雄是也。

當然,任何一件事情不可能是一個因子引起的,或者我們說時機是一個較爲寬泛抽象的因子。

下面我從多個因素去闡述爲什麼ELK突然蓬勃發展?

1,數據(日誌)的日益增多:

早年能夠產生足夠數據的就那麼一些站點,而現在一個初創的企業可能都需要面臨海量用戶/海量請求/海量分析的壓力,其中產生的日誌自然也是非常可觀,而隨着業務越來越複雜,微服務重新得到重視,無論系統日誌,還是業務日誌都更進一步了。運維或者開發們發現,我要從這麼大規模的系統中(幾百個上千個服務)產生的這麼多日誌(千億規模),去排查問題,簡直是沒有可能了。以前有這麼大數據量的公司,都是有實力的公司,他們可能有內部專用的系統去處理。然而現在突然成爲了一個普遍需求,這個時候ELK順勢而上,也就水到渠成

2,開源:

開源現在已經融入到IT社區的血液裏。雖然我們說商業,自研,還有開源三者之間是相輔相成,相濡以沫或者偶爾會相愛相殺,但是如果有開源可以選擇,顯然大部分開發或者運維還是首選開源的。有位大牛說的好:

開源及其便利性,開源的好處,學習成本底,招一個人就能培養他開幹,一個內部維護的系統,新人上火總會問題很多;比如要重構還不如重寫,或者不願在人家的代碼基礎上開發

ELK其開源屬性,顯然是比Splunk 略勝一籌的。

3,行業屬性:

有些行業對日誌的依賴是非常大的,比如 CDN 日誌除了能排查錯誤,對其分析還能對CDN調度等很多方面產生影響,這些都是實打實的經濟效益。

4,運維自身發展:

運維本身也在發展,不可能一直在刀耕火種的年代。而日誌對於運維來說,應該算是命根子了。對一個成體系的,標準化的日誌分析方案的需求,也是歷史發展的必然。ELK在恰當的時候產生,運維接受他就是自然而然的了。

5,ELK自身屬性問題:

引用一位大神的說法:

ELK能解決的核心問題,覆蓋面也廣,標準化,易擴展集成,開發和運維都對其感冒

ELK 本身非常易用,現在也有一個非常好的社區,加上需求如此之大,不火都不行。

6,大數據導致機器開始變得廉價:

大數據的一個很好的副作用是讓機器在某種意義上變得廉價了。少則幾十上百臺,多則上萬甚至幾十萬臺。服務器數量的急速攀升促進了很多技術的發展,典型的比如現在火的不要不要的深度學習。這就意味着,拿出幾十臺,上百臺服務器做日誌分析,一點問題也沒有,集中式的日誌分析慢慢成爲主流。而ELK也是一個典型的集中式日誌分析方案。

7,寫入時計算->查詢時計算:

所謂寫入時計算是指將數據經過較爲複雜的處理,聚合,得到的結果直接面向查詢。 寫入時計算規則由查詢需求決定。

隨着存儲格式的不斷進步,譬如列式存儲等的普及,以及強大的計算資源(一個ES集羣動則上百臺),使得直接存儲原汁原味的數據,然後查詢的時候做各種計算變得可能。而ELK已經提供較爲強大的查詢功能。

總體而言,寫入時計算的大方向是往查詢時計算轉化。查詢時計算最大的優勢是支持任意查詢,不丟失信息。

總結

每個時期的軟件們興衰,就像歷史長河中的各個王朝一樣。有百花齊放的時候,也有一統江湖的時候。ELK的崛起,最主要還是大勢造就而成,譬如移動互聯網衝擊,大數據/雲計算的火熱,技術的更新換代,運維/開發羣體的不斷的成長

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章