在配置filebeat抓取nginx日志到kafka的时候遇到个问题,无法将数据传输给kafka,虽然hosts指定了3个broker的ip,但是依然无效

最终通过尝试发现,虽然这边指定了broker的ip,但猜测还是会和zk通信并获取到其他broker的hostname(配置kafka的时候server.properties中listeners和advertised.listeners都是配置的hostname,且hostname是通过/etc/hosts绑定的,非真实域名可访问),而不是ip,所以filebeat所在的机器由于没有添加过hosts来解析,所以是无法访问kafka的

/etc/hosts 配置上对应的broker的hostname,问题解决

filebeat基本配置

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/access.log

# ------------------------------ Kafka output ----------------------------------
output.kafka:
  hosts: ["192.168.202.129:9092", "192.168.202.130:9092", "192.168.202.131:9092"]
  topic: "filebeat"
  codec.json:
    pretty: false

  # Optional protocol and basic auth credentials.
  # protocol: "https"
  # username: "elastic"
  # password: "changeme"

 

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐