ELK日志平台架构详解:从Filebeat采集到Elasticsearch检索的企业级日志方案实践

ELK 日志平台架构介绍

1. 文档说明

适合应用对象

  • 运维工程师
  • 开发工程师
  • 系统管理员

文章方向

本文主要介绍 ELK 日志平台的整体架构、核心组件及日志流转过程,帮助读者快速了解 ELK 平台的整体架构及日志流转过程,为后续部署、日志接入及日志查询提供基础认识。

本文仅介绍 ELK 平台架构,不涉及部署安装、日志接入及日志查询,相关内容请参考后续文档。


2. 什么是 ELK

ELK 是一套成熟的开源日志管理解决方案,由 Elasticsearch、Logstash、Kibana 三个核心组件组成。在生产环境中,通常结合 Filebeat 作为轻量级日志采集器,共同构建完整的日志采集、处理、存储和可视化分析平台。

相比传统服务器逐台查看日志的方式,ELK 可以实现日志统一采集、集中存储、快速检索和可视化分析,大幅提升运维排障及日志分析效率,特别是在制造业场景下,例如 MES、WMS、ERP 等业务系统,会产生大量用户访问、SQL 执行、API 调用等日志,ELK 对这类高日志量系统具有较好的适用性。本文也将结合制造业生产环境进行介绍。

目前 ELK 已广泛应用于:

  • 应用系统日志管理
  • Linux 系统日志管理
  • Web 服务访问日志
  • 安全审计日志
  • 故障定位与问题分析
  • 多服务器统一日志管理

3. ELK 平台整体架构

整个日志平台主要由四个核心组件组成:

  • Filebeat:负责采集服务器日志
  • Logstash:负责日志解析、过滤和格式转换
  • Elasticsearch:负责日志存储及全文检索
  • Kibana :负责日志查询及可视化展示

​​ 在本平台中,各业务服务器仅负责日志采集,不直接参与日志分析。所有日志统一发送至日志服务器进行集中处理,实现日志统一管理,这样对应的系统运维人员或者是配置管理员以及开发者只需要配置filebeat即可接入elk环境,然后于指定位置进行查询。

各业务服务器通过 Filebeat 将日志发送至日志采集服务器,由 Logstash 统一处理后写入 Elasticsearch。


4. 各组件介绍

4.1 Filebeat ------ 日志采集

Filebeat 是 Elastic 官方提供的轻量级日志采集工具,负责持续监控指定目录中的日志文件,并实时上传至日志平台。Filebeat 会持续监控日志文件变化,以追加读取(Tail)的方式采集新增日志,并逐条发送到日志平台。由于采用 Go 编写,资源占用较低,非常适合作为日志采集器。

主要特点:

  • 资源占用低
  • 支持断点续传
  • 支持多日志目录采集
  • 支持 Linux、Windows 等多种操作系统
  • 支持模块化配置
  • 可直接对接 Elasticsearch 或 Logstash

在本平台中,所有业务服务器均部署 Filebeat,仅需配置日志路径及上传地址即可完成日志接入,如果有日志等级的采集需求(例如只需要error.warning),即参考之后的配置也可达成。

对于部分仅支持 Syslog 输出的网络设备(如交换机、防火墙等),也可通过 rsyslog 将日志统一转发至固定服务器,再通过filebeat进行传输,这个只需要配置相关的日志导出功能就可以,主流的华三、华为、思科交换机,深信服防火墙都支持。


4.2 Logstash ------ 日志处理

Logstash 是 ELK 的日志处理中心,负责对采集到的日志进行统一处理,可以添加固定的字段来与其他日志进行区分,Logstash 本身基于 Java 运行,在日志量较大的情况下对服务器资源有一定要求。因此实际生产环境中一般只承担统一日志管道、日志解析及字段处理等工作,而不会在其中实现过于复杂的业务逻辑,这里不再一一介绍。

主要功能包括:

  • 日志解析
  • 字段提取
  • 数据过滤
  • 日志格式转换
  • 标签添加
  • 字段补充

例如:

原始日志:

text 复制代码
2026-08-01 ERROR Login Failed User=root

经过 Logstash 解析后:

text 复制代码
timestamp : 2026-08-01
level     : ERROR
user      : root
message   : Login Failed

统一的数据格式可以提高 Elasticsearch 查询效率,同时方便 Kibana 进行统计分析,这个对于我们来说也更加方便查询,大家一般使用对应字段来进行划分,这点很重要,日志收集及统计都是为了查询服务


4.3 Elasticsearch ------ 日志存储

Elasticsearch 是 ELK 平台的核心组件,负责存储所有日志数据,并提供高性能全文搜索能力。

相比传统数据库,Elasticsearch 更适合处理海量日志数据,es作为中间件大部分应用场景都是为搜索引擎,大家也能感觉到es的全文强力索引功能,对于海量级别的日志搜索手拿把掐,非常适合日志平台使用。

主要特点:

  • 全文检索
  • 高性能搜索
  • 聚合分析
  • 分布式存储
  • 高可用集群
  • 生命周期管理(ILM)

借助 Elasticsearch,可在数百万甚至数十亿条日志中快速定位目标内容。


4.4 Kibana ------ 日志展示

Kibana 是 Elasticsearch 官方提供的可视化分析平台。

主要功能包括:

  • 日志查询
  • 图形化展示
  • Dashboard 仪表盘
  • 聚合统计
  • CSV 导出
  • Discover 日志检索

用户无需编写 Elasticsearch 查询语句,即可完成大部分日志查询及分析工作,Kibana 日常主要使用 KQL(Kibana Query Language)进行日志筛选。最开始可能一脸懵,不过熟悉几个常用字段(如 host.ip、log.file.path、message)后,大部分日志查询都能够快速完成。


5. 日志生命周期管理

随着业务运行时间增长,日志数据会持续增加。

为了保证 Elasticsearch 集群长期稳定运行,本平台采用 ILM(Index Lifecycle Management) 生命周期管理策略,对日志进行自动管理,日志持续增长很容易出现占满ES服务器磁盘的情况,推荐设置60-90天,远古日志会自动清理掉。

生命周期主要包括:

markdown 复制代码
Hot(热阶段)
    │
    ▼
Warm(温阶段)
    │
    ▼
Cold(冷阶段)
    │
    ▼
Delete(自动删除)

生命周期管理具有以下优点:

  • 自动清理历史日志
  • 减少磁盘占用
  • 提高查询效率
  • 保证 Elasticsearch 集群稳定运行

不同业务可根据需求配置不同的日志保留周期。


6. 为什么选择 ELK

目前主流日志平台包括 ELK、Loki(Grafana)以及 Fluentd 等。它们各自适用于不同场景,并不存在绝对的优劣。结合实际测试以及生产环境需求,本平台最终选择了 ELK。

本平台最终选择 ELK,主要基于以下几点:

主流日志方案横向对比

对比项 ELK (Elasticsearch + Logstash + Kibana) Loki + Grafana Fluentd Vector
定位 完整日志平台 云原生日志平台 日志采集与转发 日志采集与转发
数据存储 Elasticsearch 全文索引 标签索引(Label) 无内置存储 无内置存储
查询能力 ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐ ⭐
全文搜索 支持 有限支持 不支持 不支持
聚合分析 强 中 弱 弱
存储成本 较高 较低 依赖后端 依赖后端
部署复杂度 高 中 中 低
资源占用 较高 较低 中 低
Kubernetes 支持 良好 非常优秀 良好 非常优秀
生命周期管理 ILM Retention 无 无
可视化 Kibana Grafana 第三方 第三方
适用场景 企业日志平台、日志分析、安全审计 Kubernetes、云原生日志 日志汇聚 高性能日志采集

对于需要长期保存日志、频繁进行日志检索和故障分析的生产环境,ELK 是较为成熟且稳定的解决方案,特别是制造行业的相关系统和应用来说,也是我选择FELK的原因


7. 平台整体设计

本平台采用 Filebeat → Logstash → Elasticsearch → Kibana 的架构,而不是 Filebeat 直接写入 Elasticsearch。

这样设计主要有以下几个原因:

  • 统一解析不同业务日志格式
  • 对日志增加统一标签及来源信息
  • 过滤无效日志,减少 Elasticsearch 存储压力
  • 后续可扩展 Kafka、Redis 等消息队列
  • 各业务服务器无需关注 Elasticsearch 配置

整个日志处理过程均在日志平台完成,业务服务器仅负责日志采集,从而降低业务系统与日志平台之间的耦合度,即方便相关维护人员配置,也可以降低系统服务的压力


8. 后续文档

本文介绍了 ELK 日志平台的整体架构及核心组件。

后续文档包括:

文档 内容
ELK 部署配置 Elasticsearch、Logstash、Kibana、Filebeat 安装及配置
日志接入指南 Filebeat 配置、日志接入流程
日志查询指南 Elasticsearch API、Kibana 查询方法
ES Log Viewer 开源项目使用说明 企业内部日志查询平台使用方法

建议按照上述顺序阅读,以便完整了解日志平台的部署及使用流程。

​

相关推荐
忆挽篱笙歌3 分钟前
gcc,g++
linux
l1t1 小时前
修复WSL CreateInstance/E_UNEXPECTED和 mounted read-only 错误
linux·windows·wsl
Ruiery1 小时前
Linux 6.6内核 CPU 深度解析(九):时钟与 TSC — 内核怎么从 PIT/HPET 切到 TSC
linux·运维·服务器
91刘仁德2 小时前
Linux网络编程从入门到实战:UDP/TCP协议与socket编程全解析
linux·网络·笔记·tcp/ip·udp
水饺编程2 小时前
第1章:下载 Linux 0.12 内核
linux·c语言·汇编·ubuntu
牢姐与蒯2 小时前
一点小碎片——每个线程独有的东西——上下文+栈
linux·运维·服务器
小此方2 小时前
Linux网络(二十):TCP拥塞控制与延迟应答详解:从拥塞窗口到TCP性能优化,理解TCP与UDP的效率差异
linux·网络·php
yunwei372 小时前
eBPF 开发实践:使用 eBPF 隐藏进程或文件信息
linux·后端·性能优化
芝麻开门2922 小时前
Linux文件系统
linux·文件系统
羔羊++2 小时前
24_实验二十三_运行内核
linux