ElasticSearch實戰-日誌監控平臺架構方案

轉自:http://www.cnblogs.com/smartloli/p/4654973.html


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實戰系列,來給大家分析這部分內容,包括平臺的搭建部署,到平臺的實現這一整個流程,這篇文章大家能夠有個印象,熟悉各個套件的作用即可。



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