Filebeat 应该直连 Elasticsearch 还是经过 Logstash?
日志结构化良好(JSON)或只需轻处理时 Filebeat 直连 ES 最简单;需要复杂解析、多路输出、聚合富化时加 Logstash 中间层。本文给出两种架构的适用场景与对比。
判断标准一句话:你的日志需要在入库前"大改"吗?不需要(JSON 日志、简单切分)就 Filebeat 直连 ES;需要(grok 解析、字段富化、多输出)就加 Logstash。
直连 ES(推荐起步)
Filebeat → ES(ingest pipeline 做轻处理)
适合:JSON 结构化日志、K8s 容器日志(带元数据即可)、流量中小。Filebeat 的 processors(dissect/decode_json/drop)已覆盖基础处理;ES 的 Ingest Pipeline 还能在入库侧补一刀(grok、rename)。
优点:少一层组件、延迟低、故障点少。
经过 Logstash
Filebeat → Logstash(重处理) → ES
适合:复杂多行/多格式解析、需要字段富化(查库/GeoIP)、一份日志发多个目的地、需要 Kafka 式缓冲前的预处理。
代价:多一层 JVM 组件,资源与运维成本上升。
观测云对照
观测云架构中 DataKit 同时承担采集与处理(内置 Pipeline),日志直传云端——不需要在"直连还是加中间层"之间纠结,一层搞定。
常见问题(FAQ)
Q:先直连后续能加 Logstash 吗? 可以,Filebeat 改 output 指向 Logstash 即可,无侵入。
Q:直连模式下 ES 挂了日志会丢吗? Filebeat 会反压暂停并持续重试,短期内不丢。