1、常見ELK架構工作流程


一、ELK架構介紹

1、核心組成:

 ELK是一個應用套件,由elasticsearch 、logstash 和 kibana三部分組件組成,簡稱ELK。他是一套開源免費、功能強大的日志分析管理系統,
ELK可以將我們的系統日志、網站日志、應用系統日志等各種日志進行收集、過濾、清洗,然后進行集中存放並可用於實時檢索分析。

2、elasticsearch 介紹:

elasticsearch是一個實時的分布式搜索和分析引擎,他可以用於全文搜索,結構化搜索以及分析,采用java語言編寫,他的主要特點如下:
1、實時搜索,實時分析
2、分布式架構、實時文件存儲,並將沒一個字段都編入索引
3、文檔導向,所有的對象全部是文檔
4、高可用,易擴展,支持集群(cluster)、分片和復制(shards和replicas)
5、接口友好,支持json

elasticsearch支持集群架構,典型的集群架構如下圖所示:

 

 從圖中可以看出,elasticsearch集群中有master node和 slave node 兩種角色,

3、Logstash介紹


Logstash是一款輕量級的、開源的日志收集處理框架,他可以方便的把分散的、多樣化的日志搜集起來,並進行自定義過濾分析處理,然后傳輸到指定的位置,
比如某個服務器或者文件。Logstash采用JRuby語言編寫,他的主要特點如下:

Logstash的理念很簡單,從功能上來講,他只做三件事情:
1、input:數據收集
2、filter:數據加工,如過濾,改寫等
3、output:數據輸出

別看他只做三件事,單通過組合輸入和輸出,可以變幻出多種架構實現多種需求
Logstash內部運行邏輯如下圖所示:

 其中,每部分含義如下:

	shipper:主要用來收集日志數據,負責監控本地日志文件變化,及時把日志文件的最新內容收集起來,然后經過加工、過濾、輸出到Broker.
	Broker:相當於日志Hub,用來連接多個shipper和indexer.
	Indexer:從Broker讀取文本,經過加工、過濾、輸出到指定的介質(可以是文件、網絡、elasticsearch等)中。

redis服務器是logstash官方推薦的broker,這個broker起數據緩存的作用,通過這個緩存器可以提高Logstash shipper發送日志到 Logstash indexer的速度,
同時避免由於突然斷電等導致的數據丟失。可以實現Broker功能的還有很多軟件,例如kafka 等。

 這里需要說明的是,在實際用用中,logstash自身並沒有什么角色,只是根據不同的功能,不同的配置給出不同的稱呼而已,無論是shipper還是indexer,始終只做前面提到的三件事

這里需要重點掌握的是logstash中shipper和indexer的作用,因為這兩部分是logstash功能的核心。

 4、kibana介紹     

       kibana是一個開源的數據分析可視化平台,使用kibana可以為logstash和elasticsearch提供的日志數據進行高效的搜索、可視化匯總和多維度分析,還可以與elasticsearch搜索引擎之中的數據進行交互,他基於瀏覽器的界面操作可以快速創建動態儀表板,實時監elasticsearch的數據狀態與更改。

 5、ELK工作流程:

       一般都是再需要收集日志的服務上部署logstash,作為logstash shipper 用於監控並手機、過濾日志,接着,將過濾后的日志發送給broker,然后,logstash indexer將存放再broker中的數據再寫入elasticsearch 、elasticsearch對這些數據創建索引,左后kibana對其進行各  種分析並以圖表的形式展示。

 

 有些時候,如果收集的日志量比較大,為了保證日志收集的性能和數據的完整性,logstash shipper 和 logstash indexer之間的緩沖器(broker)也經常采用kafka來實現。

 

 

 

  


免責聲明!

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



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