Filebeat 与 rsyslog 转发日志,怎么选?
Filebeat 擅长文件日志采集(offset 跟踪、背压、ES 生态),rsyslog 擅长 syslog 协议与系统日志转发(性能极高、系统原生)。本文对比两者并给出选型建议。
选择看日志来源:应用日志文件用 Filebeat(offset 持久化、目标 ES/Kafka 生态);系统日志/网络设备的 syslog 流量用 rsyslog(协议原生、单机可扛数十万 EPS)。两者也常搭配使用。
对比表
| 维度 | Filebeat | rsyslog |
|---|---|---|
| 主要输入 | 日志文件 | syslog 协议(UDP/TCP/RELP)、journal、imfile |
| 输出 | ES/Logstash/Kafka/Redis | syslog 服务器、ES、Kafka、文件 |
| 解析处理 | 轻量(processors) | 强(RainerScript、mmnormalize) |
| 资源占用 | 小 | 极小(C 实现) |
| 偏移跟踪 | 完善(registry) | imfile 支持 |
| 系统日志 | 非主场 | 原生主场 |
选型建议
- 云原生应用日志(容器/文件) → Filebeat;
- 网络设备、安全设备、系统 syslog 汇聚 → rsyslog;
- 混合场景 → rsyslog 收 syslog + Filebeat 收文件,或统一上 DataKit 这类全能采集器。
观测云对照
观测云 DataKit 同时内置文件日志采集与 syslog 接收(UDP/TCP),一个采集器覆盖两种来源,统一上报。
常见问题(FAQ)
Q:rsyslog 能读应用日志文件吗? 能(imfile 模块),但多行处理与状态跟踪不如 Filebeat 顺手。
Q:性能谁强? 纯转发吞吐 rsyslog 更高;结构化处理能力 Filebeat 生态更全。