ElasticStack分布式引擎技術棧(ELK)介紹


   剛入職不久,就在公司跟前輩導師了解到Elastic技術棧,讓我着手准備負責部門ELK-Stack(雲計算)的相關工作,於是開始整理學習與總結。

由於本人所在的是某大型央企銀行的信息科技部門,與各大數據庫交往比較密切,故本人對Elastic十分感興趣。

一、簡介

Elastic-Stack早期也稱為ELK,現統一叫ELK stack。這一套技術棧解決的是企業級的業務需求,能夠安全可靠地獲取任何來源、任何格式的數據,然后實時地對數據進行搜索、分析和可視化。

使用此產品的客戶聞名全球,有Google、Microsoft等等。現在國內的大廠也基本在投入Elastic服務。

      (1)、Wikipedia 使用 Elasticsearch 提供帶有高亮片段的全文搜索,還有 search-as-you-type 和 did-you-mean 的建議。
        (2)、衛報 使用 Elasticsearch 將網絡社交數據結合到訪客日志中,實時的給它的編輯們提供公眾對於新文章的反饋。
        (3)、Stack Overflow 將地理位置查詢融入全文檢索中去,並且使用 more-like-this 接口去查找相關的問題與答案。
        (4)、GitHub 使用 Elasticsearch 對1300億行代碼進行查詢。

然而 Elasticsearch 不僅僅為巨頭公司服務。它也幫助了很多初創公司,像 Datadog 和 Klout, 幫助他們將想法用原型實現,並轉化為可擴展的解決方案。Elasticsearch 能運行在你的筆記本電腦上,或者擴展到上百台服務器上去處理PB級數據。

ELastic的官網為:https://www.elastic.co/。

其核心由這四個組件構成:Elasticsearch(核心,開源搜索引擎)、Kibana、Beats和 Logstash。

 

二、組件介紹

  1、ElasticSearch 是一個基於 Apache Lucene 的開源搜索引擎。它通過RESTful API 來隱藏Lucene的復雜性,從而讓全文搜索變得簡單。不過,Elasticsearch 不僅僅是 Lucene 和全文搜索,我們還能這樣去描述它:

  • 分布式的實時文件存儲,每個字段都被索引並可被搜索
  • 分布式的實時分析搜索引擎
  • 可以擴展到上百台服務器,處理PB級結構化或非結構化數據

  ElasticSearch對數據進行搜索、分析和存儲,其是基於JSON的分布式搜索和分析引擎,專門為實現水平可擴展性、高可靠性和管理便捷性而設計的

它的實現原理主要分為以下幾個步驟:

    1)首先用戶將數據提交到ElasticSearch數據庫中;

    2)再通過分詞控制器將對應的語句分詞;

    3)將分詞結果及其權重一並存入,以備用戶在搜索數據時,根據權重將結果排名和打分,將返回結果呈現給用戶;

  2、Kibana實現數據可視化,其作用就是在ElasticSearch中進行民航。Kibana能夠以圖表的形式呈現數據,並且具有可擴展的用戶界面,可以全方位的配置和管理ElasticSearch。

    Kibana最早的時候是基於Logstash創建的工具,后被Elastic公司在2013年收購。

    1)Kibana可以提供各種可視化的圖表;

    2)可以通過機器學習的技術,對異常情況進行檢測,用於提前發現可疑問題;

  3、Beats是一個面向輕量型采集器的平台,這些采集器可以從邊緣機器向Logstash、ElasticSearch發送數據,它是由Go語言進行開發的,運行效率方面比較快。從下圖中可以看出,不同Beats的套件是針對不同的數據源。

  4、Logstash是動態數據收集管道,擁有可擴展的插件生態系統,支持從不同來源采集數據,轉換數據,並將數據發送到不同的存儲庫中。其能夠與ElasticSearch產生強大的協同作用,后被Elastic公司在2013年收購。

    它具有如下特性:

    1)實時解析和轉換數據;

    2)可擴展,具有200多個插件;

    3)可靠性、安全性。Logstash會通過持久化隊列來保證至少將運行中的事件送達一次,同時將數據進行傳輸加密;

    4)監控;

    對於日志的解決方案一般分為:日志搜索、格式化分析、全文檢索、風險告警;

三、學習ElasticSearch的層面:

 1、開發層面

    1)了解ElasticSearch有基本功能;2)底層分布式工作原理;3)針對數據進行數據建模;

  2、運維層面

    1)進行集群的容量規划;2)對集群進行滾動升級;3)對性能的優化;4)出現問題后,對問題的診斷與解決;

  3、方案層面

    1)學習ElasticSearch后,可以針對實際情況,解決搜索的相關問題;2)可以將ELK運用到大數據分析場景中;

四、ElasticSearch的主要功能與應用場景:

  1、主要功能:

    1)、海量數據的分布式存儲以及集群管理,達到了服務與數據的高可用以及水平擴展;

    2)、近實時搜索,性能卓越。對結構化、全文、地理位置等類型數據的處理;

    3)、海量數據的近實時分析(聚合功能)

  2、應用場景:

    1)網站搜索、垂直搜索、代碼搜索;

    2)日志管理與分析、安全指標監控、應用性能監控、Web抓取輿情分析;

五、ElasticSearch與數據庫BD集成:

  

  針對上圖,可以分為兩種情況:

  1、將ElasticSearch當成數據庫來存儲數據,好處是架構比較簡單;

  2、若數據更新比較頻繁,同時需要考慮數據事務性時,應該先將數據存入數據庫,然后建立一個合適的同步機制,將數據同步到ElasticSearch中;

日志處理:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM