首页/云/可观测性速查/Logstash Pipeline:input/filter/output
日志平台52 条

Logstash Pipeline:input/filter/output

管道三段式:input 收数据、filter 改数据、output 发数据;配置文件描述一条流水线,多管道可在 pipelines.yml 中分别声明。

可观测性速查云更新于 2026-10-13

Logstash Pipeline 是什么

Logstash 管道是经典的三段式结构:input 负责收取数据,filter 负责解析与改写,output 负责发送到目标。一条管道写在一个配置文件里,多管道可以在 pipelines.yml 中分别声明,各管道独立配置队列与线程,是日志平台里最常见的清洗层。

基本信息

结构input / filter / output 三段
配置文件.conf,或 pipelines.yml 声明多管道
常见 inputbeats、kafka、file、tcp
常见 outputelasticsearch、kafka、stdout
调试手段-e 临时配置 + rubydebug
并发模型pipeline workers 数决定处理能力

典型使用场景

  • 接收 Filebeat 送来的日志,解析后写入 Elasticsearch
  • 从 Kafka 消费日志做清洗,再分发到多个下游
  • 对非结构化文本做 grok 解析与字段类型转换
  • 用条件判断给不同来源的日志打上不同标签与索引
  • 在写入前做字段裁剪与脱敏,控制存储与合规风险
  • 用 stdout 与 rubydebug 在本地验证解析逻辑

单管道示例

单管道示例
input {
  beats { port => 5044 }        # 接收 Filebeat 数据
}

filter {
  grok { match => { "message" => "%{TIMESTAMP_ISO8601:log_ts} %{LOGLEVEL:level} %{GREEDYDATA:msg}" } }
  date { match => ["log_ts", "ISO8601"] }   # 用日志时间覆盖事件时间
}

output {
  elasticsearch {
    hosts => ["http://es:9200"]
    index => "applogs-%{+YYYY.MM.dd}"
  }
}

三段职责

段职责常见插件
input接收数据beats、kafka、file、tcp
filter解析与改写grok、date、mutate、dissect
output发送数据elasticsearch、kafka、stdout
codec编码解码json、plain、rubydebug
调试用 -e 跑临时配置、stdout { codec => rubydebug } 输出中间结果,验证后再上生产,比直接改线上配置安全得多。
date 过滤器很关键:不把日志时间覆盖到 @timestamp 时,索引会按接收时间归档,回放历史日志会全部落在当天。
管道吞吐受 workers 与批大小影响,调参前先用监控确认瓶颈在 CPU、堆内存还是下游写入。
多管道场景下用 pipelines.yml 的 id 区分,命名统一便于排障;各管道的队列设置相互独立。
持久化队列能在进程重启时保住未处理完的事件,对不能丢日志的场景建议开启并评估磁盘占用。
用 mutate 做字段裁剪与重命名,把不需要的字段在写入前删掉,既省存储也降低下游解析成本。
Logstash 自身指标(事件吞吐、队列积压、JVM 堆)要一并监控,否则出现延迟时很难判断瓶颈在哪一环。

易错点

  • filter 里字段名写错不会报错,只会静默不改——用 rubydebug 输出核对字段
  • 多管道共用条件分支时命名混乱会拖慢排查,pipelines.yml 的 id 要统一规范
  • 忘记 date 过滤器会让历史日志按接收时间入库,索引日期与内容时间不符
  • 解析失败的行仍会写入,但缺少字段导致后续查询与聚合口径缺失
  • workers 与堆内存配置不当会造成背压堆积,表现为下游延迟而非直接报错
  • 下游不可用时没有启用持久队列,事件会在内存里堆积并最终丢弃

数据来源与参考

  • Elastic 官方文档 · Logstash pipeline
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌