You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Kafka+ELK实现Windows日志采集异常排查求助

问题排查:Windows Filebeat日志无法流转至Kibana

环境组件

  • Filebeat 8.1.3(部署在Windows系统)
  • Elasticsearch 7.17.1
  • Logstash 8.1.3
  • Kafka(与ELK部署在同一服务器,通过Helm安装)

架构流程

Windows Filebeat采集本地日志 → 输出至Kafka → Logstash从Kafka读取日志 → 写入Elasticsearch → Kibana展示

核心问题:Kibana无法展示Windows Filebeat采集的日志,但通过Kafka CLI容器发送的消息可正常显示。

配置信息

Filebeat配置(Windows端filebeat.yml)

type: log
paths:
  - "E:/QwikCilver/Applogs/AppLog/zeus/zeus.log"
ignore_older: 5m
scan_frequency: 1m
close_inactive: 10s
close_removed: true
clean_removed: true
close_renamed: true
multiline.type: pattern
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after
tags: ["Perf", "zeus.log" ]

output.kafka:
  hosts: ["internal-a6a50c1cf23db4fa582d77b7a28d2fc9-485248067.ap-south-1.elb.amazonaws.com:9092"]
  enabled: true
  topic: "my_topic"
  partition.round_robin:
    reachable_only: false
  required_acks: 1
  compression: gzip
  max_message_bytes: 1000000

Logstash配置

input {
  kafka {
    bootstrap_servers => "kafka-broker.kafka.svc.cluster.local:9092"
    topics => ["my_topic"]
    codec => json
  }
}
filter {
 }
output {
  elasticsearch {
        index => "others-%{+YYYY.MM.dd}"
        hosts => ["elasticsearch:9200"]
        user => elastic
        password => *********
        }
}

排查步骤与解决方法

1. 验证Filebeat基础功能

  • 执行Windows命令检查配置语法:filebeat test config -c filebeat.yml,确保无语法报错
  • 测试Kafka输出连通性:filebeat test output -c filebeat.yml,确认能正常连接到Kafka地址
  • 查看Filebeat日志(默认路径:C:\Program Files\Filebeat\logs\filebeat.log),排查是否存在日志文件权限不足、Kafka连接超时、topic不存在等报错

2. 确认Kafka Topic接收状态

  • 进入Kafka容器,执行命令查看topic偏移量:
    kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list kafka-broker.kafka.svc.cluster.local:9092 --topic my_topic --time -1
    
    对比前后偏移量是否增长,判断Filebeat是否成功发送消息到Kafka
  • 若偏移量无变化:
    • 用telnet internal-a6a50c1cf23db4fa582d77b7a28d2fc9-485248067.ap-south-1.elb.amazonaws.com 9092测试Windows机器到Kafka ELB的端口连通性
    • 检查Kafka集群配置,确保开启auto.create.topics.enable=true(若my_topic未手动创建)
    • 确认Kafka监听配置支持外部Windows机器通过ELB访问

3. 检查Logstash与Kafka/Elasticsearch的交互

  • 查看Logstash日志(默认路径:/var/log/logstash/logstash-plain.log),排查是否存在Kafka读取权限不足、JSON codec解析失败等报错
  • 临时修改Logstash input的codec => plain,测试是否能接收消息,排除格式兼容性问题
  • 验证Elasticsearch写入情况:执行
    curl -u elastic:你的密码 http://elasticsearch:9200/others-$(date +%Y.%m.%d)/_count
    
    查看当日索引的文档数是否增长

4. 版本兼容性调整

Filebeat 8.1.3与Elasticsearch 7.17.1存在跨版本兼容风险,建议将Filebeat降级至7.17.x系列,避免版本不匹配导致的消息格式或API调用异常

5. 网络与防火墙检查

  • 确认Windows机器的防火墙未拦截9092端口出站流量
  • 检查Kafka所在服务器的安全组,允许Windows机器的IP访问9092端口

内容的提问来源于stack exchange,提问作者Saikat Konar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 16:42:29