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

Logstash多Pipeline配置下Kafka Input异常问题排查

问题原因与解决方案

核心问题:Pipelines配置中的路径转义错误

你的pipelines.yml里配置的path.config使用了多余的转义反斜杠,导致Logstash无法定位到指定的Pipeline配置文件:

原错误配置片段:

path.config: "\/usr\/share\/logstash\/pipeline\/dev-a-logstash.conf"

在YAML的多行块字符串(|标记)中,正斜杠/不需要转义,转义后的反斜杠会被当作路径的一部分,导致实际路径变成\usr\share\logstash\pipeline\dev-a-logstash.conf——这个路径并不存在。

触发的异常行为

当Logstash无法找到path.config指定的文件时,会回退加载默认Pipeline目录(即你挂载的/usr/share/logstash/pipeline/)下的所有.conf文件。这意味着:

  • dev-a和dev-b两个Pipeline都会同时加载dev-a-logstash.conf和dev-b-logstash.conf
  • 来自dev-a Kafka Topic的数据会被两个Pipeline同时处理:
    1. 经dev-a Pipeline的Output写入dev-a-%{+YYYY.MM}索引
    2. 经dev-b Pipeline的Output写入dev-b-%{+YYYY.MM}索引
  • 由于dev-b Topic无数据,最终dev-b索引里只会出现dev-a Topic的内容

修复步骤

修改logstash-pipelines ConfigMap中的pipelines.yml,移除路径中的转义反斜杠:

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: logging
  name: logstash-pipelines
  labels:
    app: logstash
data:
  pipelines.yml: |
    - pipeline.id: dev-a
      pipeline.workers: 1
      path.config: "/usr/share/logstash/pipeline/dev-a-logstash.conf"
    - pipeline.id: dev-b
      pipeline.workers: 1
      path.config: "/usr/share/logstash/pipeline/dev-b-logstash.conf"
  # 其余dev-a、dev-b的conf配置保持不变

修改后重启Logstash Deployment,让新配置生效:

kubectl rollout restart deployment logstash -n logging

验证方法

  1. 查看Logstash日志,确认不再出现“无法找到指定配置文件”的警告
  2. 向dev-a Topic发送测试数据,检查Elasticsearch中仅dev-a索引新增数据
  3. 后续向dev-b Topic发送数据时,只会写入dev-b索引

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 03:52:02