温馨提示×

debian filebeat如何发kafka

小樊
34
2026-10-26 22:53:11
栏目: 智能运维

在 Debian 上用 Filebeat 发送日志到 Kafka,一般步骤如下(以 Debian 11/12 为例,Filebeat 7.x/8.x 通用):


一、安装 Filebeat

1. 使用官方仓库安装(推荐)

sudo apt update
sudo apt install curl gnupg -y

curl -L https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic.list

sudo apt update
sudo apt install filebeat -y

如果是 7.x,把 8.x 换成 7.x


二、配置 Filebeat 发送 Kafka

编辑配置文件:

sudo vim /etc/filebeat/filebeat.yml

示例:读取日志并发送到 Kafka

filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - /var/log/*.log
    fields:
      service: my-app

output.kafka:
  hosts: ["kafka1:9092", "kafka2:9092", "kafka3:9092"]
  topic: "filebeat-logs"
  partition.round_robin:
    reachable_only: true
  required_acks: 1
  compression: gzip
  max_message_bytes: 1000000

说明

  • hosts:Kafka broker 地址
  • topic:Kafka topic(需提前创建)
  • required_acks:
    • 0 不确认
    • 1 leader 确认
    • all 全部确认(最安全)
  • compression:可选 none / gzip / snappy / lz4

三、Kafka Topic 准备(可选但建议)

kafka-topics.sh --create \
  --topic filebeat-logs \
  --bootstrap-server kafka1:9092 \
  --partitions 3 \
  --replication-factor 2

四、启动 Filebeat

sudo systemctl enable filebeat
sudo systemctl start filebeat

查看状态:

sudo systemctl status filebeat

五、排查问题

查看日志

journalctl -u filebeat -f

常见问题

  1. Kafka 连不上

    • 防火墙
    • hosts 配置错误
    • Kafka 未监听外部 IP
  2. Topic 不存在

    • 自动创建未开启(auto.create.topics.enable=false)
  3. 权限问题

    • /var/log 读取权限

六、可选:按服务分 Topic

output.kafka:
  hosts: ["kafka:9092"]
  topic: "%{[fields.service]}"

如果你愿意,可以告诉我:

  • Filebeat 版本
  • Kafka 版本
  • 日志来源(容器 / 系统 / Nginx / 自定义)

我可以给你一份完全定制化的配置。

0 踩