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 开源项目使用说明 企业内部日志查询平台使用方法

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

相关推荐
手揽回忆怎么睡1 小时前
Ubuntu 22.04 64位安装MinIO
linux·前端·ubuntu
阳光九叶草LXGZXJ2 小时前
达梦数据库-报错-11-cmd 13 validate error
linux·运维·数据库·sql·学习
~光~~2 小时前
【嵌入式linux学习_OV8858 bring up】L1_从Sensor到RK3588发生了什么
linux·运维·学习
Darkwanderor2 小时前
使用管道实现进程间通信 (IPC, Inter-Process Communitation)
linux·c语言·c++
Nuanyt2 小时前
Linux系统的 Shell 常见指令和常见知识点(以bash为主)
linux·运维·chrome·bash
程序员老陆2 小时前
FFmpeg 硬解在 Linux 上:从“能跑”到“跑满 GPU”的实战笔记
linux·笔记·ffmpeg
星恒随风2 小时前
Linux 权限详解:从 rwx、chmod 到 umask、目录权限与粘滞位
linux·运维·服务器·笔记·学习
拳里剑气2 小时前
Linux:进程间通信
linux·运维·数据库·进程
lsh曙光3 小时前
防火墙-iptables
linux