You need to enable JavaScript to run this app. 如何配置Logstash同时支持日志文件与NetFlow端口多输入
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Logstash同时支持日志文件与NetFlow端口多输入

核心冲突根因
  • 互斥问题的来源是将NetFlow采集以Logstash内置模块激活的方式写入了logstash.yml全局配置:Logstash的内置模块一旦在全局配置中启用,会默认加载模块自带的独立运行管道,直接跳过用户自定义的、读取本地日志文件的管道配置,不存在配置层面的输入端口争抢、插件冲突问题。
共存配置调整方案

第一步:清理模块模式的冗余配置

将logstash.yml中所有和NetFlow模块相关的配置全部注释或删除,包括之前添加的name: netflow、var.input.udp.port: 2055这类模块参数。内置模块模式天生不支持与自定义管道并行运行,需要切换为原生插件直连的配置方式实现共存。

第二步:根据采集规模选择匹配的管道组织方式

小规模采集场景:单管道多输入配置

在原有自定义的日志采集管道文件中,将NetFlow输入与原有file输入并列配置,完全绕开模块加载逻辑,参考配置示例:

# /etc/logstash/conf.d/mixed-input-pipeline.conf
input {
  # 原有采集逻辑:读取3台设备写入/var/log的独立日志文件
  file {
    path => ["/var/log/device1/*.log", "/var/log/device2/*.log", "/var/log/device3/*.log"]
    start_position => "beginning"
    sincedb_path => "/var/lib/logstash/sincedb_network_device_logs"
    tags => ["local_network_log"]
  }
  # 新增并列配置:采集2055端口的思科NetFlow日志
  udp {
    port => 2055
    codec => netflow {
      versions => [9, 10] # 兼容思科常见的NetFlow v9、IPFIX格式
    }
    tags => ["netflow"]
  }
}

filter {
  # 原有本地日志的解析规则保持不变,通过标签精准匹配
  if "local_network_log" in [tags] {
    # 已调试完成的本地日志解析逻辑
  }
  # NetFlow日志的解析逻辑独立配置
  if "netflow" in [tags] {
    # NetFlow字段规范化逻辑
  }
}

output {
  elasticsearch {
    hosts => ["http://127.0.0.1:9200"]
    # 复用原有索引规则,通过标签区分写入目标
    index => "%{[tags][0]}-%{+YYYY.MM.dd}"
  }
}

中大规模采集场景:多管道隔离配置

对日志量级高、需要故障隔离的部署,将两类输入拆分为独立管道运行,避免单管道故障影响全量采集:

  1. 拆分两个独立配置文件:
    • pipeline/local-log.conf:仅保留本地文件输入、对应解析规则、索引输出逻辑
    • pipeline/netflow.conf:仅保留2055端口UDP NetFlow输入、对应解析规则、索引输出逻辑
  2. 修改pipelines.yml(复数文件名,与全局配置logstash.yml区分),同时注册加载两个管道,示例配置:
# /etc/logstash/pipelines.yml
- pipeline.id: local-network-log-collect
  path.config: "/etc/logstash/conf.d/pipeline/local-log.conf"
  pipeline.workers: 2

- pipeline.id: netflow-collect
  path.config: "/etc/logstash/conf.d/pipeline/netflow.conf"
  pipeline.workers: 1 # UDP类输入配置单worker即可,避免乱序、丢包
配置生效验证
  • 重启Logstash后,执行ss -ulnp | grep 2055确认UDP端口处于正常监听状态
  • 检查Logstash日志中的sincedb偏移量更新情况,确认/var/log下的设备日志可以被持续读取
  • 在Elasticsearch中分别查询两类索引的日志写入情况,确认采集无中断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 23:45:02