ELK架構體系、ELK運行原理、ELK應用場景、ELK簡單介紹(一)

筆者接觸到ELK是由於公司項目採用微服務架構,這樣在部署時各個服務需要在不同機器上,而且每個服務部署好幾份,這個時候日誌到收集就是問題了,不能像之前那樣單體應用都在一個機器,可以直接登錄查看,所以就開始去了解ELK,最後用ELK+Kafka來完成日誌收集處理並展現,而且ELK在大數據行業應用也很廣泛。

一、ELK介紹

ELK Stack是軟件集合Elasticsearch、Logstash、Kibana的簡稱,它們都是開源軟件。新增了一個FileBeat,它是一個輕量級的日誌收集處理工具(Agent),Filebeat佔用資源少,適合於在各個服務器上搜集日誌後傳輸給Logstash,官方也推薦此工具。

 

Elasticsearch 是一個基於 Lucene 的、支持全文索引的分佈式存儲和索引引擎,主要負責將日誌索引並存儲起來,方便業務方檢索查詢。它的特點有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。

Logstash是一個日誌收集、過濾、轉發的中間件,主要負責將各條業務線的各類日誌統一收集、過濾後,轉發給 Elasticsearch 進行下一步處理。一般工作方式爲c/s架構,client端安裝在需要收集日誌的主機上,server端負責將收到的各節點日誌進行過濾、修改等操作在一併發往elasticsearch上去。

Kibana是一個可視化工具,也是一個開源和免費的,Kibana可以爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,可以幫助彙總、分析和搜索重要數據日誌。

Filebeat隸屬於Beats。目前Beats包含四種工具:

1、Packetbeat(蒐集網絡流量數據)

2、Topbeat(蒐集系統、進程和文件系統級別的 CPU 和內存使用情況等數據

3、Filebeat(蒐集文件數據)

4、Winlogbeat(蒐集 Windows 事件日誌數據)

官方文檔:

Filebeat:

https://www.elastic.co/cn/products/beats/filebeat

https://www.elastic.co/guide/en/beats/filebeat/5.6/index.html

Logstash:

https://www.elastic.co/cn/products/logstash

https://www.elastic.co/guide/en/logstash/5.6/index.html

Kibana:

https://www.elastic.co/cn/products/kibana

https://www.elastic.co/guide/en/kibana/5.5/index.html

Elasticsearch:

https://www.elastic.co/cn/products/elasticsearch

https://www.elastic.co/guide/en/elasticsearch/reference/5.6/index.html

elasticsearch中文社區:

https://elasticsearch.cn/

部分資料來源:

elk原理:https://www.cnblogs.com/aresxin/p/8035137.html

 

推薦博客:

ELK架構體系、ELK運行原理、ELK應用場景、ELK簡單介紹(一):https://blog.csdn.net/zjh_746140129/article/details/86483318

Linux安裝ELK、elasticsearch部署安裝(二):https://blog.csdn.net/zjh_746140129/article/details/86483661

Linux安裝ELK、logstash部署安裝(三):https://blog.csdn.net/zjh_746140129/article/details/86484586

Linux安裝ELK、kibana部署安裝(四):https://blog.csdn.net/zjh_746140129/article/details/86484862

 

二、ELK架構體系

架構圖一:

這是最簡單的一種ELK架構方式。優點是搭建簡單,易於上手。缺點是Logstash耗資源較大,運行佔用CPU和內存高。另外沒有消息隊列緩存,存在數據丟失隱患。

此架構由Logstash分佈於各個節點上搜集相關日誌、數據,並經過分析、過濾後發送給遠端服務器上的Elasticsearch進行存儲。Elasticsearch將數據以分片的形式壓縮存儲並提供多種API供用戶查詢,操作。用戶亦可以更直觀的通過配置Kibana Web方便的對日誌查詢,並根據數據生成報表。

架構圖二:

此種架構引入了消息隊列機制,位於各個節點上的Logstash Agent先將數據/日誌傳遞給Kafka(或者Redis),並將隊列中消息或數據間接傳遞給Logstash,Logstash過濾、分析後將數據傳遞給Elasticsearch存儲。最後由Kibana將日誌和數據呈現給用戶。因爲引入了Kafka(或者Redis),所以即使遠端Logstash server因故障停止運行,數據將會先被存儲下來,從而避免數據丟失。

架構圖三:

此種架構將收集端logstash替換爲beats,更靈活,消耗資源更少,擴展性更強。同時可配置Logstash 和Elasticsearch 集羣用於支持大集羣系統的運維日誌數據監控和查詢。

 

三、ELK運行原理

 

四、ELK應用場景

 

 

五、ELK安裝部署集成

 

 

 

 

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