ElasticSearch實戰-日誌監控平臺

哥不是小蘿莉發表於2015-07-17

1.概述

  在專案業務倍增的情況下,查詢效率受到影響,這裡我們經過討論,引進了分散式搜尋套件——ElasticSearch,通過分散式搜尋來解決當下業務上存在的問題。下面給大家列出今天分析的目錄:

  • ElasticSearch 套件介紹
  • ElasticSearch 應用場景和案例
  • 平臺架構

  下面開始今天的內容分享。

2.ElasticSearch 套件

2.1LogStash

  LogStash是一個開源的、免費的日誌收集工具,屬於Elastic家族的一員,負責將收集的日誌資訊輸送到ElasticSearch,為ElasticSearch提供資料來源。

2.2ElasticSearch

  ElasticSearch是一個開源的分散式搜尋引擎,具備高可靠性,支援非常多的企業級搜尋用例。像Solr4一樣,是基於Lucene構建的。支援時間索引和全文檢索。官網:https://www.elastic.co 它對外提供一系列基於Java和HTTP的API,用於索引、檢索、修改大多數配置。

2.3 Kibana

  Kibana也是開源和免費的工具,同樣也是Elastic家族的一員,它可以幫助我們彙總、分析和搜尋重要資料日誌,並且提供友好的Web視覺化介面。它可以為LogStash和ElasticSearch提供一個視覺化的Web介面。

  下面我們來看看ElasticSearch的應用場景和案例。

3.ElasticSearch 應用場景和案例

  在面對實時海量資料查詢,實時搜尋,全文搜尋,ElasticSearch 都能夠很好的去勝任,它是基於 Lucene、RESTful、分散式、面向雲端計算設計、實時搜尋、全文搜尋、穩定、高可靠、可擴充套件、安裝和使用方便。下面給大家介紹一些場景的案例。

  • Github

  這個開源的託管平臺,對於我們開發者來說,並不陌生,我們基本每天都會去訪問Github,而Github使用ElasticSearch來實現搜尋,執行在多個叢集上。由於程式碼搜尋索引很大,Github專門指定一個叢集。Github使用Elasticsearch搜尋20TB的資料,包括13億的檔案和1300億行的程式碼。

  • Mozilla

  Mozilla公司因Firefox而聞名,它目前使用Elasticsearch將測試的結果以JSON的格式進行儲存,開發人員可以非常方便的查詢BUG。

  • Sony

  Sony公司使用Elasticsearch作為資訊搜尋引擎,以提供對外界的查詢響應。

  另外,還有很多企業也用到了ElasticSearch去作為一個分散式搜尋引擎,這裡就不一一列舉了。

4.平臺架構

  下面,我給大家用一個圖來說明日誌監控平臺的架構,如下圖所示:

  通過上圖,我們可以清晰的看到日誌平臺整個流向過程,下面我給大家來解釋圖中的各個環節的含義。首先,多個獨立的Agent,這裡就是圖左邊的三個LogStash節點,他們負責收集不同來源的資料,由一個Indexer負責進行彙總和分析資料,在這個當中有一箇中間過程,這裡我們使用了Broker,用Redis來實現這部分功能,其作用充當一個緩衝區,之後由ElasticSearch負責儲存和搜尋資料,最後由前段的Kibana視覺化我們收集的資料。

  這裡說明幾點需要注意的地方:

  • 採用LogStash收集各種日誌資料,其型別可以是:系統日誌、檔案、Redis、MQ等等。
  • Broker作為遠端代理和中心代理的緩衝區,使用Redis進行實現,原因有二:其一,可以提高系統的效能;其二,可以提高系統的高可用性,當中心代理提取資料失敗時,資料儲存在Redis中,可以規避資料丟失的風險。
  • 中心代理使用LogStash,負責從Broker中獲取資料,可以執行相關的分析和處理,它提供有Filter功能。
  • ElasticSearch用於儲存最終的資料,並對外提供搜尋功能,基於Restful。
  • Kibana提供一個簡單、豐富的Web View視覺化介面,用於視覺化ElasticSearch叢集中的資料,支援各種查詢、統計和展示。

5.總結

  這篇部落格只是給大家入個門,讓大家通過一個日誌監控平臺的案例去熟悉ElasticSearch套件的使用,以及它的背景。後面我會專門用於一個ElasticSearch實戰系列,來給大家分析這部分內容,包括平臺的搭建部署,到平臺的實現這一整個流程,這篇文章大家能夠有個印象,熟悉各個套件的作用即可。

6.結束語

  這篇部落格就和大家分享到這裡,如果大家在研究學習的過程當中有什麼問題,可以加群進行討論或傳送郵件給我,我會盡我所能為您解答,與君共勉!

相關文章