Filebeat实现分布式日志收集的核心方案如下:
filebeat.inputs指定本地日志路径(如/var/log/*.log),实现跨服务器日志采集。output.elasticsearch或output.kafka发送至Elasticsearch集群或Kafka,支持负载均衡和故障转移。
hosts: ["es1:9200", "es2:9200"]),实现高可用存储。cluster.name和discovery.seed_hosts实现Filebeat实例集群化,共享状态并协同工作,避免单点故障。harvester_buffer_size和bulk_max_size等参数优化传输性能,避免数据丢失。关键配置示例:
# filebeat.yml 配置示例(分布式场景)
filebeat.inputs:
- type: log
paths: ["/var/log/app/*.log", "/var/log/db/*.log"]
fields:
service_name: "app-service" # 标识服务来源
output.elasticsearch:
hosts: ["es-node1:9200", "es-node2:9200"]
index: "logs-%{+YYYY.MM.dd}"
loadbalance: true # 启用负载均衡
# 启用集群模式(可选)
cluster.name: "distributed-filebeat"
discovery.seed_hosts: ["filebeat-node1:5066", "filebeat-node2:5066"]
通过上述方案,Filebeat可高效采集分布式系统日志,实现数据的集中存储、处理与分析。