Elastic Static 是指由Elasticsearch,Logstash,Kibana,Beats等組件結合起來而構成的一個數據收集,分析,可視化的一個架構.咱們常常據說過的ELK就是指前面三個,它可以安全可靠地獲取任何來源、任何格式的數據,而且可以實時地對數據進行搜索、分析和可視化。node
這裏咱們從數據的流向來簡單介紹下這幾個組件.數據庫
1. 數據採集過程
能夠採集人和來源,任何格式的數據json
Beats
Beats 是輕量型採集器的平臺,從邊緣機器向 Logstash 和 Elasticsearch 發送數據。安全
Logstash
Logstash 是動態數據收集管道,擁有可擴展的插件生態系統,可以與 Elasticsearch 產生強大的協同做用。相似於 Hadoop 生態圈裏的 Flume,整個採集的過程也是基於事務(event)的[這一點是經過codec的插件來作到]。一般在其.conf配置文件規定 logstash 如何處理各類類型的事務流,通常包含 input、filter、output 三個部分(域),在每個域中,可供選擇多個插件來處理咱們的數據。網絡
2. 數據搜索、分析和存儲
Elasticsearch架構
Elasticsearch 是基於 JSON 的分佈式搜索和分析引擎,專爲實現水平擴展、高可用和管理便捷性而設計。ElasticSearch 也是基於 Lucene進行了封裝,它能在一秒內返回你要查找的且已經在 Elasticsearch 作了索引的文檔,提供了更爲便利的訪問和調用.它存儲json格式的文檔數據,有基於RESTful的操做接口。利用Elasticsearch能夠方便的在任何Web應用中集成搜索應用。另外它更有出色的聚合功能(aggregation),能輕鬆的對數據進行統計分析 .這個組件也是整個stack的主角.框架
Elasticsearch 中的 Index 是一組具備類似特徵的文檔集合,相似於關係數據庫模型中的數據庫實例,Index 中能夠指定 Type 區分不一樣的文檔,相似於數據庫實例中的關係表,Document 是存儲的基本單位,都是 JSON 格式,相似於關係表中行級對象。咱們處理後的 JSON 文檔格式的日誌都要在 Elasticsearch 中作索引,相應的 Logstash 有 Elasticsearch output 插件,對於用戶是透明的。須要說明的是,ES6.0以後,好像規定一個Index下只可以定義一種Type,後面也會慢慢去掉Type這個概念,,最終,咱們就姑且把Index當作數據表來理解,Document當作數據表的行理解吧.分佈式
3. 數據可視化
Kibana實現數據可視化。導覽 Elastic Stack。工具
Kibana 可以以圖表的形式呈現數據,而且具備可擴展的用戶界面,供您全方位配置和管理 Elastic Stack。簡單來講,Kibana 是在ElasticSearch 有了至關多的數據以後,進行分析,可視化數據用的工具。oop
由於在日誌處理等場景,不免會在技術選型上有所抉擇?
簡單來講,對於普通的小型的數據量,PB級別吧對於ES來講,沒什麼大的問題,並且,我的以爲,ES的簡便搭建維護,也是不錯的選擇.
可是當數據量暴增,咱們的集羣數量也增長的狀況下,就面臨着,數據的分佈式存儲,就要考驗H/S集羣或者ES集羣對於數據一致性的保證.
因爲Elasticsearch集羣中每一個節點都是狀態維護者,在集羣中網絡不穩定的狀況下(主節點丟失)就有可能出現集羣腦裂(不一樣的節點對master節點的選擇出現了異常)
然而對於Haddop集羣來講,就存在主從namenode節點的概念,只會有一個節點來管理datanode的信息(並且仍是備份型的)
Elasticsearch擁有功能強大的聚合統計和全文搜索功能,能夠輕鬆的用於網絡問題分析,如404錯誤計數,頁面瀏覽量,用戶訪問統計信息等。但它缺乏相似標準SQL中的join(鏈接)或子查詢的功能。Elasticsearch不支持查詢結果的額外處理或分析的中間數據的輸出,也不支持數據集的轉換(即一個100萬行的表,使用分析處理後,成爲另外一個100萬行的表),故不太適合處理複雜的計算邏輯。
雖然Elasticsearch存在這些問題,可是它仍然是一個很是優秀的分佈式計算框架,並且Elasticsearch能夠很是方便的集成在hadoop中,咱們也能夠用它優秀的數據檢索能力來構造本身的查詢系統.
---------------------好的,先就簡單介紹到這裏.接下來,會減小如何搭建一個本身的ES----------------