Filebeat 在 Ubuntu 上连不上 Kafka,通常不是单一原因,而是网络、配置、版本、权限这几类问题之一。下面按最常见 → 较少见的顺序帮你排查。
filebeat.yml 里:
output.kafka:
hosts: ["10.0.0.10:9092"]
❌ 常见错误:
localhost(Filebeat 和 Kafka 不在同一台机器)2181(那是 Zookeeper)✅ Kafka 服务端确认:
grep listeners server.properties
应有:
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<公网或内网IP>:9092
在 Ubuntu 上执行:
telnet 10.0.0.10 9092
# 或
nc -vz 10.0.0.10 9092
❌ 不通:
最少可用配置:
output.kafka:
hosts: ["10.0.0.10:9092"]
topic: "filebeat-logs"
partition.round_robin:
reachable_only: true
required_acks: 1
❌ 常见错误:
topic如果 Kafka 开了 SASL:
output.kafka:
hosts: ["kafka:9092"]
username: "filebeat"
password: "xxx"
sasl.mechanism: "PLAIN"
topic: "logs"
否则会一直连不上。
systemctl status filebeat
journalctl -u filebeat -f
常见错误:
filebeat test output
或:
journalctl -u filebeat | grep kafka
典型错误:
dial tcp i/o timeout → 网络connection refused → Kafka 没起 / 端口错topic not found → topic 没建SASL authentication failed → 鉴权kafka-topics.sh --list --bootstrap-server localhost:9092
没有就建:
kafka-topics.sh --create \
--topic filebeat-logs \
--bootstrap-server localhost:9092 \
--partitions 3 --replication-factor 1
版本差太多也会连不上。
| 检查项 | 命令 |
|---|---|
| 网络 | nc -vz kafka_ip 9092 |
| Kafka 监听 | listeners |
| Filebeat 状态 | systemctl status filebeat |
| 输出测试 | filebeat test output |
| 日志 | journalctl -u filebeat |
你可以贴:
filebeat.yml 的 output.kafka 部分journalctl -u filebeat 报错server.properties 的 listeners 配置我可以逐行帮你改到能连上。