1. 程式人生 > >初識集中化日誌平臺框架 【ELK】

初識集中化日誌平臺框架 【ELK】

擴展 目前 避免 監控 www 副本 日誌收集 and 簡單的

ELK是三個開源軟件的縮寫,分別表示:Elasticsearch , Logstash, Kibana , 它們都是開源軟件。新增了一個FileBeat,它是一個輕量級的日誌收集處理工具(Agent),Filebeat占用資源少,適合於在各個服務器上搜集日誌後傳輸給Logstash。

Elasticsearch是個開源分布式搜索引擎,提供搜集、分析、存儲數據三大功能。它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。

Logstash 主要是用來日誌的搜集、分析、過濾日誌的工具,支持大量的數據獲取方式。一般工作方式為c/s架構,client端安裝在需要收集日誌的主機上,server端負責將收到的各節點日誌進行過濾、修改等操作在一並發往elasticsearch上去。

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

官方文檔:

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架構圖:

架構圖一:

技術分享圖片

這是最簡單的一種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 集群用於支持大集群系統的運維日誌數據監控和查詢。

Beats目前包含四種工具:

  • Packetbeat(搜集網絡流量數據)
  • Topbeat(搜集系統、進程和文件系統級別的 CPU 和內存使用情況等數據)
  • Filebeat(搜集文件數據)
  • Winlogbeat(搜集 Windows 事件日誌數據)

*****************************
*** Keep learning and growing. ***
*****************************

初識集中化日誌平臺框架 【ELK】