Filebeat实现日志集中管理的核心思路
典型架构与适用场景
| 架构 | 数据链路 | 优点 | 适用场景 |
|---|---|---|---|
| 直传 ES | Filebeat → Elasticsearch → Kibana | 架构最简、时延低 | 日志量中小、处理逻辑简单的场景 |
| 经 Logstash 处理 | Filebeat → Logstash → Elasticsearch → Kibana | 过滤、丰富、脱敏能力强 | 需要 Grok 结构化、字段治理、脱敏与路由的场景 |
| 经 Kafka 缓冲 | Filebeat → Kafka → Logstash → Elasticsearch → Kibana | 削峰填谷、解耦、可重放 | 日志规模大、峰值高、需跨系统解耦的场景 |
| 说明:Filebeat 支持与 Logstash 的 SSL/TLS 加密传输;在大规模场景可引入 Kafka 做缓冲与解耦,Logstash 消费 Kafka 后再写入 ES。 |
落地步骤与关键配置
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
fields:
app_id: my_app
fields_under_root: true
- type: log
paths:
- /opt/app/logs/*.log
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after
filebeat.modules:
- module: system
setup.ilm.enabled: auto
setup.kibana:
host: "kibana:5601"
output.elasticsearch:
hosts: ["es:9200"]
index: "filebeat-system-%{+yyyy.MM.dd}"
output.elasticsearch:
hosts: ["es:9200"]
index: "app-logs-%{+yyyy.MM.dd}"
output.logstash:
hosts: ["logstash:5044"]
ssl.certificate_authorities: ["/etc/filebeat/ca.crt"]
output.kafka:
hosts: ["kafka1:9092","kafka2:9092"]
topic: "app-logs"
required_acks: 1
compression: gzip
filebeat setup 系列命令),确保索引模板与解析管道就绪。性能与安全最佳实践