企业级日志平台实战:ELK + Filebeat + Kafka + ZooKeeper
一、整体架构服务器产生日志 → 日志采集 → 消息队列缓冲 → 日志清洗 → 存储检索 → 可视化展示plaintext业务/系统日志 → Filebeat采集 → Kafka削峰解耦 → Logstash清洗格式化 → Elasticsearch存储索引 → Kibana展示查询二、ELK 核心组件作用1. Elasticsearch分布式搜索引擎 / 索引数据库作用存储、索引、检索海量日志提供高并发、低延迟查询特点分布式、高可用、基于 Lucene、RESTful API核心机制分片 副本默认 5 主分片 1 个副本管理方式curl命令发送 HTTP 请求操作索引2. Logstash数据采集 / 清洗 / 格式化Java 开发功能强但比较耗资源三部分Input 采集 → Filter 过滤 → Output 输出作用统一日志格式为 JSON、过滤无用日志、路由输出3. Kibana可视化平台页面化展示 ES 中日志做图表、监控、检索、导出日志运维常用故障排查、日志提取、业务数据观测4. Filebeat轻量日志采集器Go 语言开发占用 CPU / 内存极低专门用于采集服务器本地日志文件直接部署在业务机替代重量级 Logstash 客户端三、日志采集工具对比表格工具开发语言特点使用场景FilebeatGo超轻量、低消耗服务器文件日志采集最常用LogstashJava功能强、耗资源集中式日志清洗、过滤、转换FlumeJava大数据场景Hadoop 生态、海量日志采集FluentdC/Ruby云原生、轻量容器日志、K8s 日志采集四、Elasticsearch 核心知识点1. 分片与副本机制分片Shard把一个索引切成多段分布式存储在不同节点提高并发与容量副本Replica分片的备份提高可用性与读性能默认配置5 个主分片 1 个副本2. 倒排索引ES 快的核心正向索引文档 → 关键词倒排索引关键词 → 文档ES 建立关键词与文档 ID 的映射实现秒级检索3. ES 常用 curl 命令bash运行# 查看集群健康 curl -XGET 192.168.72.141:9200/_cluster/health?pretty # 查看所有索引 curl -XGET 192.168.72.141:9200/_cat/indices?v # 创建索引 curl -XPUT 192.168.72.141:9200/test-index # 修改副本数 curl -XPUT 192.168.72.141:9200/test-index/_settings -d {number_of_replicas:2} # 删除索引 curl -XDELETE 192.168.72.141:9200/test-index五、消息队列 Kafka 核心1. 为什么要使用 Kafka三大作用削峰日志突增时先存入队列消费者慢慢消费生产者产生的数据会暂存在消息队列中消费者根据自身能力消费数据即可可以保障数据处理的稳定性异步采集完不等待处理直接返回消息队列保存完数据之后就会通知生产者继续输出不会等待消费者消费完再通知解耦Filebeat 与 Logstash 互不依赖一方挂了不影响另一方将原本的生产者与消费者关系隔离开来例如filebeat 和logstash2. Kafka 核心概念Broker一台 Kafka 服务器Topic主题相当于队列 / 分类Partition分区Topic 分为多个目录存储提高并发Segment分区内的数据段文件.logOffset偏移量标记消费位置Leader Follower主分区与副本分区Consumer Group消费者组负载均衡消费3. Kafka 工作流程生产者Filebeat发送日志到指定 TopicTopic 分为多个 Partition由 Leader 提供读写数据以.log格式分段Segment存储消费者组从 Leader 拉取Pull数据按 Offset 消费数据默认保存7 天4. Kafka 依赖 ZooKeeper 做什么集群节点注册与发现控制器Controller选举分区 Leader 选举元数据管理Topic、Partition、Offset注意Kafka 2.8 以后可脱离 ZK 独立运行Kafka 2.8 推出的 KRaft 模式仅替代了 ZK 的「元数据管理」核心功能ZK 额外提供的通用分布式锁、统一配置中心、主动 Watcher 通知、跨组件节点发现、事务性元数据修改这些功能是 2.8 后 Kafka 原生不具备的。不过脱离 ZK 能减少依赖、提升性能这也是 Kafka 主推 KRaft 模式的原因。5. Kafka 常用命令bash运行# 创建主题 kafka-topics.sh --create --zookeeper 192.168.72.140:2181 --replication-factor 2 --partitions 3 --topic httpd # 查看主题列表 kafka-topics.sh --list --zookeeper 192.168.72.140:2181 # 查看主题详情 kafka-topics.sh --describe --zookeeper 192.168.72.140:2181 --topic httpd # 修改分区数 kafka-topics.sh --alter --zookeeper 192.168.72.140:2181 --topic httpd --partitions 6 # 删除主题 kafka-topics.sh --delete --zookeeper 192.168.72.140:2181 --topic httpd # 生产消息 kafka-console-producer.sh --broker-list 192.168.72.140:9092 --topic httpd # 消费消息 kafka-console-consumer.sh --bootstrap-server 192.168.72.140:9092 --topic httpd --from-beginning六、ELK Kafka 完整对接配置1. Filebeat 输出到 Kafkayamlfilebeat.inputs: - type: log enabled: true paths: - /var/log/httpd/access_log tags: [access] - type: log enabled: true paths: - /var/log/httpd/error_log tags: [error] output.kafka: enabled: true hosts: [192.168.72.140:9092,192.168.72.141:9092,192.168.72.142:9092] topic: httpd codec.json: pretty: false2. Logstash 从 Kafka 读取rubyinput { kafka { bootstrap_servers 192.168.72.140:9092,192.168.72.141:9092,192.168.72.142:9092 topics httpd codec json auto_offset_reset latest } } output { elasticsearch { hosts [192.168.72.141:9200] index filebeat_test-%{yyyy.MM.dd} } }七、面试题答案整理1. 你们用 ELK 采集哪些日志业务日志log4j2系统日志messages服务访问日志access_log错误日志error_log慢查询日志、MySQL binlog、Redis 日志等2. 你们怎么采集日志业务机部署Filebeat采集日志输出到Kafka削峰解耦Logstash从 Kafka 读取并格式化存入ElasticsearchKibana展示与查询3. ES 索引、分片、副本怎么做索引默认5 主分片 1 副本分片分布式存储提升性能与容量副本保证高可用可通过curl -XPUT修改副本数4. 什么是倒排索引将关键词对应到文档的索引结构ES 用它实现快速全文检索是 Elasticsearch 高性能的核心5. ES 为什么快倒排索引分片并发读写内存文件系统缓存分段存储Segment6. 消息队列作用削峰异步解耦7. Kafka 工作流程生产者发数据到 Topic分区存储Leader 提供服务消费者组主动 Pull 拉取数据按 Offset 消费默认保存 7 天8.消费者组Consumer Group的作用消费者组 多个消费者组成的「团队」核心规则同一个 Topic 的一个分区只能被同一个消费者组里的一个消费者拉取避免重复消费八、运维日常工作ELK 用途故障排查通过 Kibana 快速检索错误日志日志提取给开发 / 测试导出业务日志数据核对提供业务数据观测报表集群维护ES 索引清理、Kafka 分区均衡、监控告警九、整套实验总结你搭建的是企业最标准的 ELFK 架构plaintext日志 → Filebeat → Kafka → Logstash → Elasticsearch → Kibana包含轻量采集Filebeat流量削峰Kafka协调服务ZK清洗格式化Logstash分布式存储ES可视化展示Kibana

相关新闻

基于微信小程序的社区养老服务系统的设计与实现

基于微信小程序的社区养老服务系统的设计与实现

一、项目介绍 本研究致力于探讨基于微信小程序的社区养老服务系统的设计与实现。在当前社会老龄化趋势日益加剧的背景下,传统的养老服务模式已难以满足老年人多元化、个性化的需求。因此,开发一种新型、高效、便捷的养老服务系统显得尤为迫切。 微信小程…

2026/5/17 11:52:43 阅读更多 →
打开软件就弹出msvcr110.dll如何修复? 附免费下载方法分享

打开软件就弹出msvcr110.dll如何修复? 附免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

2026/7/4 6:48:48 阅读更多 →
打开软件就弹出msvcr100.dll如何修复? 附免费下载方法分享

打开软件就弹出msvcr100.dll如何修复? 附免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

2026/5/17 10:36:42 阅读更多 →

最新新闻

CLIP、SigLIP与AIM三款视觉语言模型工程选型实战指南

CLIP、SigLIP与AIM三款视觉语言模型工程选型实战指南

1. 项目概述:三款视觉语言模型的实战对比,不是论文复述,是工程师手里的选型指南最近在做多模态内容理解项目时,团队卡在了图文匹配模块的选型上——到底是用CLIP这个“老大哥”,还是上SigLIP这个“新锐选手”&#xff…

2026/7/4 12:23:00 阅读更多 →
MIC1557与PIC18LF26K80硬件选型及定时系统设计

MIC1557与PIC18LF26K80硬件选型及定时系统设计

1. MIC1557与PIC18LF26K80的硬件选型解析MIC1557是一款微型CMOS RC振荡器芯片,采用SOT-23-5封装,工作电压范围2.7V-18V,静态电流仅200μA。与传统的555定时器相比,它省去了频率控制引脚和集电极开路放电引脚,但保留了阈…

2026/7/4 12:16:53 阅读更多 →
AI钓鱼攻击:从原理到防御,构建企业安全免疫系统

AI钓鱼攻击:从原理到防御,构建企业安全免疫系统

1. 项目概述:当钓鱼攻击披上AI的“羊皮” 如果你还认为钓鱼邮件是那种满屏错别字、用蹩脚英文催你点链接的“垃圾”,那你的安全观念可能还停留在五年前。我干了十多年网络安全,亲眼看着攻击手段从“广撒网”的群发垃圾邮件,进化到…

2026/7/4 12:14:52 阅读更多 →
如何永久保存微信聊天记录:免费开源工具让你的数字记忆永不丢失

如何永久保存微信聊天记录:免费开源工具让你的数字记忆永不丢失

如何永久保存微信聊天记录:免费开源工具让你的数字记忆永不丢失 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending…

2026/7/4 12:14:52 阅读更多 →
量子科技中的多样性与包容性实践

量子科技中的多样性与包容性实践

1. 量子科技领域为何需要关注多样性与包容性?量子计算、量子通信等量子科技正在重塑未来技术格局。与传统学科不同,量子科技本质上是一门高度交叉的领域,融合了物理学、计算机科学、材料学、工程学等多个学科。这种交叉性决定了其发展特别依赖…

2026/7/4 12:12:52 阅读更多 →
终极指南:3分钟解决Windows上iPhone USB网络共享驱动问题

终极指南:3分钟解决Windows上iPhone USB网络共享驱动问题

终极指南:3分钟解决Windows上iPhone USB网络共享驱动问题 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/gh_…

2026/7/4 12:10:51 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻