温馨提示×

centos filebeat怎么连kafka

小樊
34
2026-09-02 21:51:18
栏目: 智能运维

下面给你一个 CentOS 上 Filebeat 连接 Kafka 的常规做法(以 RPM 安装为例,适用于 ELK 常见架构)。


一、环境准备

1. 安装 Filebeat(CentOS)

sudo yum install -y filebeat
# 或
sudo rpm -ivh filebeat-8.x.x-x86_64.rpm

2. 确认 Kafka 可用

  • Kafka 地址(如:192.168.1.10:9092
  • Topic 已创建(如:filebeat-logs

二、配置 Filebeat 输出到 Kafka

编辑配置文件:

vi /etc/filebeat/filebeat.yml

示例配置(重点在 output.kafka

filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - /var/log/*.log
      - /opt/app/logs/*.log

# 关闭 Elasticsearch 输出(默认是开启的)
output.elasticsearch:
  enabled: false

# Kafka 输出
output.kafka:
  enabled: true
  hosts: ["192.168.1.10:9092"]
  topic: "filebeat-logs"
  partition.round_robin:
    reachable_only: true
  required_acks: 1
  compression: gzip
  max_message_bytes: 1000000

三、启动 Filebeat

systemctl enable filebeat
systemctl start filebeat

查看状态:

systemctl status filebeat

四、验证是否成功

1. 查看 Filebeat 日志

tail -f /var/log/filebeat/filebeat

2. Kafka 消费验证

在 Kafka 服务器上:

kafka-console-consumer.sh \
  --bootstrap-server 192.168.1.10:9092 \
  --topic filebeat-logs \
  --from-beginning

如果能看到 JSON 日志,说明连接成功。


五、常见问题

1. 连不上 Kafka

  • 防火墙:9092 是否开放
  • Kafka 配置:listeners / advertised.listeners
  • Filebeat 与 Kafka 版本兼容性

2. Topic 不存在

Kafka 若未开启自动创建:

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

3. 使用 SASL 认证(常见)

output.kafka:
  hosts: ["kafka:9092"]
  topic: "filebeat-logs"
  username: "filebeat"
  password: "password"
  sasl.mechanism: PLAIN
  ssl.enabled: true

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

  • Filebeat 版本
  • Kafka 是否开启 SASL/SSL
  • 日志来源(系统日志 / Docker / Nginx 等)

我可以直接帮你写一份可用配置

0