日誌管理系統

一.爲什麼需要日誌管理系統

  1. 保留現場
  2. 自知者自明
  3. 所有即將發生的,都取決於已經發生的
  4. 數據商業化運作

1.1 日誌管理系統的解決方案

  1. 機器上的日誌實時收集,存儲到日誌中心
  2. 給日誌建立索引,通過索引能很快找到日誌
  3. 架設web界面,在web上完成日誌的搜索

1.2 日誌管理系統的困難

  1. 日誌量很大,每天幾十億條
  2. 日誌的實時收集,延遲控制在分鐘級別
  3. 能夠在線水平擴展

1.3 業內解決方案-ELK

     ELK 不是一款軟件,而是 Elasticsearch、Logstash 和 Kibana 三種軟件產品的首字母縮寫:

  • Elasticsearch:分佈式搜索和分析引擎,具有高可伸縮、高可靠和易管理等特點。基於 Apache Lucene 構建,能對大容量的數據進行接近實時的存儲、搜索和分析操作。通常被用作某些應用的基礎搜索引擎,使其具有複雜的搜索功能

  • Logstash:數據收集引擎。它支持動態的從各種數據源蒐集數據,並對數據進行過濾、分析、豐富、統一格式等操作,然後存儲到用戶指定的位置

  • Kibana:數據分析和可視化平臺。通常與 Elasticsearch 配合使用,對其中數據進行搜索、分析和以統計圖表的方式展示

1.3.1 簡單ELK架構

      把一個 Logstash 數據蒐集節點擴展到多個,分佈於多臺機器,將解析好的數據發送到 Elasticsearch server 進行存儲,最後在 Kibana 查詢、生成日誌報表等 。

1.3.2 引入消息隊列的ELK架構

      使用 Logstash 從各個數據源蒐集數據,然後經消息隊列輸出插件輸出到消息隊列中。目前 Logstash 支持 Kafka、Redis、RabbitMQ 等常見消息隊列。然後 Logstash 通過消息隊列輸入插件從隊列中獲取數據,分析過濾後經輸出插件發送到 Elasticsearch,最後通過 Kibana 展示。

1.3.3 ELK方案的問題

  • 運維成本高,每增加一個日誌收集,需要手動修改配置
  • 監控缺失,無法準確獲取Logstash的狀態二. 日誌管理系統架構

二. 日誌收集系統架構

2.1 組件介紹

  •  Log Agent:日誌收集客戶端,用來收集服務器上的日誌
  •  Kafka:基於zookeeper協調的高吞吐量的分佈式隊列
  •  ES:elasticsearch,開源的分佈式搜索引擎,給文檔建立索引
  •  Hadoop:分佈式計算框架,能夠對大量數據進行分佈式處理的平臺

 

 

 

 

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