分布式日志分析平臺(ELFK 與 EFK)理論

一、日志分析平臺核心概念

在分布式系統中,日志是系統運行狀態監控、問題排查和業務分析的重要依據。隨著系統規模擴大,單機日志管理方式已無法滿足需求,分布式日志分析平臺應運而生。其核心目標是實現日志的集中收集、統一處理、高效存儲和可視化分析

1.1 主流架構定義

  • ELK:由 Elasticsearch、Logstash、Kibana 組成的傳統日志分析架構,依賴 Logstash 完成日志的收集與處理。
  • ELFK:在 ELK 基礎上引入 Filebeat 作為日志收集器,Logstash 僅負責日志處理,形成 “收集 - 處理 - 存儲 - 可視化” 的分層架構。
  • EFK:以 Fluent-bit 替代 ELFK 中的 Filebeat 和 Logstash,整合日志收集與處理功能,適用于容器化環境的輕量級架構。

1.2 核心組件功能解析

  • Elasticsearch:分布式搜索引擎,基于 Lucene 構建,支持海量日志的實時存儲、檢索和聚合分析,通過分片和副本機制保證高可用。
  • Logstash:數據處理管道工具,支持日志的輸入、過濾(如格式轉換、字段提取)和輸出,可處理復雜的日志轉換需求,但資源占用較高。
  • Filebeat:輕量級日志收集器(基于 Golang 開發),專為日志采集設計,占用資源極少(可忽略不計),可部署在所有應用節點,通過配置讀取指定日志文件并上報。
  • Fluent-bit:開源日志處理器與收集代理,兼具日志采集和處理能力,體積小、性能高,適合容器化環境和邊緣計算設備。
  • Kibana:日志可視化平臺,提供豐富的圖表工具(如折線圖、餅圖、儀表盤等),支持通過索引模式關聯 Elasticsearch 數據,實現日志的交互式分析。

二、ELFK 與 ELK 的技術差異

ELFK 是在 ELK 基礎上針對大規模集群場景的優化架構,其核心改進在于日志收集方式的革新

2.1 架構對比

維度ELKELFK
組件組成Elasticsearch+Logstash+KibanaElasticsearch+Logstash+Filebeat+Kibana
收集方式Logstash 直接部署在應用節點收集日志Filebeat 部署在應用節點收集日志,Logstash 集中處理
資源占用高(Logstash 消耗 CPU / 內存較多)低(Filebeat 資源占用可忽略)
擴展性受限于 Logstash 性能,易成瓶頸無單點瓶頸,支持大規模節點部署
適用場景小規模集群、日志量較少場景中大規模集群、多節點分散部署場景

2.2 ELK 的弊端與 ELFK 的優勢

  • ELK 的局限性
    • 若通過 NFS 共享日志文件供 Logstash 讀取,NFS 易成為流量瓶頸;
    • 若在每個應用節點部署 Logstash,其高資源占用會與應用爭搶資源,影響業務穩定性。
  • ELFK 的改進
    • Filebeat 輕量特性:可在所有應用節點部署,僅負責日志讀取和上報,不影響應用運行;
    • 分布式收集:通過網絡直接發送日志,避免 NFS 單點依賴,支持橫向擴展;
    • 功能分離:Filebeat 專注收集,Logstash 專注處理,職責清晰,便于維護。

三、Filebeat 與 Logstash 協作原理

ELFK 架構中,Filebeat 與 Logstash 的協作是日志處理鏈路的核心環節。

3.1 Filebeat 工作機制

  • 日志采集:通過配置文件指定日志路徑(如/var/log/httpd/*.log),實時監控文件變化,記錄讀取位置(通過 sincedb 機制避免重復收集)。
  • 數據過濾:支持通過processors配置清理無效字段(如logagentecs等元數據),減少傳輸量。
  • 標簽標記:通過fields配置添加自定義標簽(如logtype: apache_log),便于后續 Logstash 按類型處理。
  • 輸出配置:默認通過output.logstash指定 Logstash 地址(如hosts: ["192.168.1.27:5044"]),將日志批量發送。

3.2 Logstash 處理流程

  • 輸入階段:通過beats插件監聽 5044 端口,接收來自 Filebeat 的日志數據。
  • 過濾階段:基于 Filebeat 的標簽(如[fields][logtype])進行條件處理,例如:
    • apache_log類型日志,使用grok插件解析HTTPD_COMBINEDLOG格式(提取客戶端 IP、請求路徑、響應碼等字段);
    • date插件將日志中的時間戳(如dd/MMM/yyyy:HH:mm:ss Z)轉換為@timestamp字段,統一時間格式。
  • 輸出階段:按日志類型輸出至 Elasticsearch,通過index參數指定索引名稱(如weblog-%{+YYYY.MM.dd}),實現按日期分片存儲。

四、EFK 架構的技術特性

EFK 是針對容器化大規模集群設計的輕量級架構,其核心是用 Fluent-bit 替代 ELFK 中的 Filebeat 和 Logstash。

4.1 EFK 與 ELFK 的差異

  • 組件簡化:Fluent-bit 整合了日志收集和處理功能,減少了 ELFK 中 Filebeat 與 Logstash 的協作開銷。
  • 容器適配:Fluent-bit 體積小、啟動快,專為容器環境優化,可直接部署在 Pod 中收集容器日志。
  • 功能集成:無需額外配置處理工具,Fluent-bit 可直接完成日志的過濾、格式化和輸出,簡化部署流程。

4.2 Fluent-bit 核心優勢

  • 輕量高效:內存占用極低(通常 < 10MB),CPU 消耗少,適合資源受限的邊緣節點或容器環境。
  • 功能全面:支持日志的收集、過濾(如字段提取、格式轉換)、緩沖和轉發,兼容多種輸出目標(如 Elasticsearch、Kafka 等)。
  • 高可靠性:支持斷點續傳和數據緩沖,避免日志丟失。

五、學茶商城項目日志分析實踐

學茶商城作為在線電商平臺,需通過日志分析平臺監控用戶行為、接口性能和系統穩定性,其日志分析方案基于 ELFK/EFK 架構設計。

5.1 項目日志特點

  • 多類型日志:包括前臺商品展示日志、后臺管理操作日志、接口調用日志、驗證碼服務日志等。
  • 高并發場景:促銷活動期間訪問量激增,需日志平臺支持高吞吐量。
  • 業務關聯性:日志需關聯用戶 ID、商品 ID 等業務字段,用于分析用戶行為和熱門商品。

5.2 日志處理策略

  • 日志分類標記:通過 Filebeat/Fluent-bit 的logtype標簽區分日志類型(如apache_logtea-server),便于后續針對性處理。
  • 字段清理優化:移除logagent等冗余元數據,保留clientiprequestresponse等核心業務字段,減少存儲和傳輸開銷。
  • 索引規劃:按日志類型和日期拆分索引(如weblog-%{+YYYY.MM.dd}tea-admin-%{+YYYY.MM.dd}),提高查詢效率。

六、Kibana 數據分析原理

Kibana 作為日志可視化工具,是日志分析的 “最后一公里”,其核心功能基于 Elasticsearch 的索引和聚合能力實現。

6.1 索引模式

  • 定義:通過索引模式(如weblog-*)關聯多個同類型索引,實現跨日期的數據查詢。
  • 時間字段:指定@timestamp作為時間篩選字段,支持按時間范圍(如近 1 小時、近 7 天)過濾日志。

6.2 可視化分析

  • 圖表類型:支持折線圖(展示訪問量趨勢)、餅圖(展示請求路徑分布)、條形圖(展示響應碼占比)等多種圖表。
  • 數據分析維度
    • 流量分析:統計不同時段的訪問量,識別高峰時段;
    • 用戶分析:通過clientip統計用戶來源,通過user_agent分析客戶端類型;
    • 業務分析:統計熱門請求路徑(如/images/pic12.png),識別用戶關注的商品或頁面。

總結

  • ELFK通過 “Filebeat 收集 + Logstash 處理” 的分層架構,解決了 ELK 的資源占用和擴展性問題,是中大規模傳統集群的首選方案。
  • EFK以 Fluent-bit 為核心,適合容器化環境,通過組件整合實現輕量部署和高效運行。
  • 日志分析的核心價值在于將無序日志轉化為有序數據,通過標簽分類、字段優化和可視化分析,為系統運維和業務決策提供支撐。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/919718.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919718.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919718.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CoreShop微信小程序商城框架開啟多租戶-添加一個WPF客戶端以便進行本地操作--讀取店鋪信息(6)

本節內容&#xff0c;使用登錄的token進行店鋪信息讀取&#xff0c;順利的話&#xff0c;進行EXCEL上傳測試。 1。在后臺編寫 讀取店鋪信息代碼 1.1 查看原來鋪店信息在什么位置&#xff0c;店鋪的表格為CoreCmsStore#region 獲取列表// POST: Api/CoreCmsStore/GetPageList///…

UE5關卡藍圖能不能保存副本呀?

提問 關卡藍圖能不能保存副本呀&#xff1f; 回答 在 UE 里&#xff0c;“關卡藍圖&#xff08;Level Blueprint&#xff09;”本身其實是不能直接復制/保存成獨立資源的&#xff0c;因為它和具體的 **Level&#xff08;.umap 文件&#xff09;**是綁定的——相當于一個“場景腳…

機器學習數據預處理學習報告

一、學習背景與目的在機器學習流程中&#xff0c;數據預處理是保障模型訓練效果的關鍵環節。原始數據常存在缺失值、量綱不一致、特征格式不匹配等問題&#xff0c;直接影響模型對數據規律的學習。本次學習圍繞 Pandas 與 Scikit-learn&#xff08;sklearn&#xff09;工具庫&a…

git舊倉庫遷移到新倉庫

git舊倉庫遷移到新倉庫 A倉庫(舊倉庫)&#xff1a;git172.16.21.21:xxxx_software/Ni-Handler-Mgr.git B倉庫(新倉庫)&#xff1a;git172.16.11.11:yyyy/hostpc/ni-handler-mgr.git Step1 新建新倉庫 創建新 GitHub 倉庫? 在 GitHub 頁面點擊 “New repository”&#xff0c;命…

YOLO --- YOLOv5模型以及項目詳解

YOLO — YOLOv5模型以及項目詳解 文章目錄YOLO --- YOLOv5模型以及項目詳解一&#xff0c;開源地址二&#xff0c;改進點Focus 模塊三&#xff0c;網絡結構3.1 CSP1_X 與 CSP2_X3.2 自適應Anchor的計算3.3 激活函數3.3.1 SiLU3.3.2 Swish3.4 Bottleneck3.5 C33.5.1 BottleneckC…

Linux文本三劍客的使用及常見重點操作

文本三劍客指 Linux環境下的 grep&#xff08;搜索&#xff09;、sed&#xff08;編輯&#xff09;、awk&#xff08;分析&#xff09;三款用于文本處理的核心命令&#xff0c;三者分工明確、功能互補&#xff0c;是處理日志、配置文件、結構化數據等場景的 “剛需工具”。一、…

??《開源字幕神器VideoCaptioner實戰:基于Whisper+LLM的全鏈路方案,免費平替剪映會員》??

&#x1f4cc; 大家好&#xff0c;我是智界工具庫&#xff0c;每天分享好用實用且智能的開源項目&#xff0c;以及在JAVA語言開發中遇到的問題&#xff0c;如果本篇文章對您有所幫助&#xff0c;請幫我點個小贊小收藏小關注吧&#xff0c;謝謝喲&#xff01;&#x1f618; 博主…

redisIO模型

??1. 總述核心??“Redis采用了??單線程的Reactor模型??來處理網絡IO和命令請求。其核心在于&#xff0c;??它使用一個主線程通過IO多路復用機制來并發地處理大量的客戶端連接&#xff0c;而實際的命令解析和執行則是單線程的??。”這句話非常重要&#xff0c;它直接…

視覺采集模塊的用法

一、圖像源模塊用法采集模塊中最基礎的單元就是圖像源模塊&#xff0c;其中圖像的輸入方式包括相機輸入、本地圖像、SDK三種。添加圖像源后&#xff0c;需要對內部的參數進行對應的配置&#xff0c;正常我們連接相機后圖像源選擇我們對應的連接相機。配置所需要的相機參數&…

Linux下基于Electron的程序ibus輸入法問題

Linux下基于Electron的程序ibus輸入法問題 最近想體驗一下KDE Plasma桌面&#xff0c;遇到一個問題&#xff0c;就是瀏覽器輸入不了中文&#xff0c;Edge、Chrome都一樣&#xff0c;當然它們都是基于Chromium的&#xff0c;出同樣的問題很正常。后面發現Visual Code也有同樣的問…

Ubuntu20系統上離線安裝MongoDB

Ubuntu20系統上離線安裝MongoDB 準備工作&#xff1a;下載安裝包及依賴? 下載MongoDB二進制包? 在聯網環境中訪問MongoDB官網&#xff0c;選擇以下配置&#xff1a; 下載地址&#xff1a;https://www.mongodb.com/try/download/community ?Version?&#xff1a;需與目標系統…

K-Means 聚類算法如何選擇初始點

n_clusters 參數是告訴 K-Means 算法對 整個數據集 (X_scaled) 進行分簇。讓我們分解一下這個過程的邏輯&#xff1a;目標&#xff1a;我們的目標不是要對數據進行分類&#xff0c;而是要從成百上千個數據點中&#xff0c;智能地挑選出大約30個點作為貝葉斯優化的“起點”。這些…

聚銘安全管家平臺2.0實戰解碼 | 安服篇(四):重構威脅追溯體系

在企業安全運營中&#xff0c;兩類問題常常讓團隊陷入被動 1、“看得見威脅&#xff0c;卻追不到源頭” 明明檢測到多臺內網設備遭攻擊&#xff0c;卻遲遲找不到攻擊源頭&#xff0c;更說不清攻擊者用了什么手法&#xff0c;導致無法及時封禁或隔離。 2、“找到了源頭&#xff…

【Microi吾碼】:低代碼加速業務和技術深度融合

目錄 一.低代碼優勢&#xff1a; 1.1低代碼平臺和傳統代碼開發&#xff1a; 1.2低代碼和0代碼平臺&#xff1a; 1.3低代碼平臺&#xff1a;Microi吾碼 二.關于開源低代碼平臺&#xff1a;Microi吾碼 2.1Mircroi吾碼介紹&#xff1a; 2.2產品特點&#xff1a; 2.3產品團…

Mongodb操作指南

一、數據庫操作1. 展示所有非空數據庫show dbs該命令會列出所有包含數據的數據庫。2. 顯示當前數據庫db此命令用于查看當前正在使用的數據庫。3. 切換或創建數據庫use 數據庫名如果指定的數據庫不存在&#xff0c;MongoDB 會在首次插入數據時自動創建它。如果已存在&#xff0c…

線性回歸計算

一、理論&#xff1a;明確線性回歸的核心邏輯模型本質&#xff1a;線性回歸是通過屬性的線性組合實現預測的模型&#xff0c;核心目標是找到最優的直線&#xff08;單變量&#xff09;、平面&#xff08;雙變量&#xff09;或超平面&#xff08;多變量&#xff09;&#xff0c;…

pnpm : 無法加載文件 C:\Program Files\nodejs\pnpm.ps1,因為在此系統上禁止運行腳本。

解決辦法 1、以管理員身份運行window powershell 2、執行Get-ExecutionPolicy&#xff0c;顯示Restricted 3、執行set-ExecutionPolicy&#xff0c;會提示輸入參數&#xff0c;此時輸入RemoteSigned回車 4、執行y回車

[特殊字符] TTS格局重塑!B站推出Index-TTS,速度、音質、情感表達全維度領先

B站維度之言&#xff1a;B 站 2025 新聲計劃&#xff1a;IndexTTS 全維度拆解 ——從開源血統到中文特調的架構復盤1&#xff1a;打破邊界&#xff1a;Index-TTS 的技術動因場景野心&#xff1a;直播實時口播、無障礙字幕、AI 虛擬 UP 主……B 站需要一把“聲音瑞士軍刀”&…

第5.3節:awk數據類型

1 第5.3節&#xff1a;awk數據類型 awk并沒有非常嚴格的數據類型&#xff0c;但在編寫代碼的過程中&#xff0c;大致可以分為以下數據類型&#xff1a; 1.1 數字型 #普通表示法 a 123 b 123.333 #科學表示法 c 1.33e13 d 1.05e-5代碼示例&#xff1a; $ echo |awk { >…

基于coco和kitti數據集訓練YOLOX

原文發表在知乎&#xff0c;辛苦移步&#xff5e;&#xff5e; 《基于coco和kitti數據集訓練YOLOX》 yolox官方的指標數據是在coco數據集上訓練出來的&#xff0c;yolox-s模型在11萬coco數據集上訓練后&#xff0c;mAP(0.5-0.95)40.5。手頭有kitti的數據集&#xff0c;所以在…