Filebeat 是一个轻量级的日志收集器,用于将日志文件或日志消息发送到各种输出目标,如 Elasticsearch、Logstash 或 Kafka。要将 Filebeat 与 Kafka 配合使用,请按照以下步骤操作:
在 CentOS 上安装 Filebeat 的最简单方法是使用预构建的 RPM 包。首先,导入 Elastic 的 GPG 密钥:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
接下来,创建一个新的 Filebeat 存储库:
sudo tee /etc/yum.repos.d/filebeat.repo <<EOF
[filebeat]
name=Elastic Filebeat repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
现在,您可以安装 Filebeat:
sudo yum install filebeat
编辑 Filebeat 的主配置文件 /etc/filebeat/filebeat.yml
。找到 output.kafka
部分并进行如下配置:
output.kafka:
# Kafka 集群的地址
hosts: ["kafka1:9092", "kafka2:9092", "kafka3:9092"]
# 主题名称
topic: 'filebeat'
# 需要发送的事件数量,达到这个数量后 Filebeat 会将事件发送到 Kafka
batching:
count: 5000
# 事件之间的最大时间间隔,超过这个时间间隔后 Filebeat 会将事件发送到 Kafka
flush:
period: 10s
# Kafka 生产者配置
producer:
# 可以在这里添加其他 Kafka 生产者配置,如 acks、retries 等
使用以下命令启动 Filebeat:
sudo systemctl start filebeat
要使 Filebeat 在系统启动时自动运行,请执行以下命令:
sudo systemctl enable filebeat
检查 Filebeat 的日志以确保它已成功连接到 Kafka 并开始发送事件:
sudo journalctl -u filebeat -f
现在,Filebeat 应该已经将日志事件发送到 Kafka 主题中。您可以在 Kafka 消费者中验证这一点,例如使用 kafkacat
工具:
kafkacat -b kafka1:9092 -t filebeat -C
这将显示发送到 filebeat
主题的所有消息。