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

如何使用Logstash匹配无分隔符日志并提取指定字段?

Logstash 无分隔符日志解析方案

所需过滤器

使用Logstash内置的grok过滤器即可实现,它支持通过正则表达式自定义规则提取任意非结构化日志中的字段,是处理无分隔符日志的首选组件。如果需要同步转换时间格式,可以搭配date过滤器使用。

具体配置示例

filter {
  grok {
    match => { 
      "message" => "^(?<data1>\d+)%{DATA:data2}\s+%<data3>[a-zA-Z]+%{NUMBER:timestamp}$" 
    }
  }
  # 可选配置:将提取的字符串格式时间戳转为Logstash标准时间类型
  date {
    match => [ "timestamp", "yyyyMMddHHmmss.SSS" ]
    target => "@timestamp"
  }
}

规则说明

上述grok匹配规则针对你给出的日志样例设计,各段含义如下:

  • ^(?<data1>\d+):匹配日志开头连续的数字序列,提取为data1字段
  • %{DATA:data2}:匹配数字段之后到空格前的所有字符,提取为data2字段
  • \s+:匹配日志中间的多个空白字符,跳过分隔段
  • %<data3>[a-zA-Z]+:匹配空白段之后到时间戳前的纯字母序列,提取为data3字段
  • %{NUMBER:timestamp}$:匹配日志末尾带小数点的数字时间戳,提取为timestamp字段

该配置对你给出的样例日志12345abcd? abcd20211129113821.323可以直接输出所需的四个字段,如果实际生产环境的日志字符规则有调整,修改对应位置的正则匹配逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:54:06