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

在分布式系统中,日志是系统运行状态监控、问题排查和业务分析的重要依据。随着系统规模扩大,单机日志管理方式已无法满足需求,分布式日志分析平台应运而生。其核心目标是实现日志的集中收集、统一处理、高效存储和可视化分析

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;所以在…