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

Logstash Grok模式如何适配完全缺失第四字段的日志格式

Logstash Grok多格式日志兼容解决方案

问题根因

原有的Grok模式仅对[符号设置了可选属性,]符号以及[formname]字段后的尾随空格仍为强制匹配项,因此完全缺失第四字段的日志无法适配。

修正后的Grok模式

\s?\[%{DATA:loglevel}\] %{TIMESTAMP_ISO8601:logts} \[%{DATA:threadname}\] (?:\[%{DATA:formname}\] )?%{DATA:podname} %{DATA:filler1} \[%{DATA:classname}\] %{GREEDYDATA:fullmesg}

修改逻辑

  • 用(?:)包裹整个[formname] 片段(注意尾部空格也包含在内),构成非捕获分组,不会额外生成冗余字段
  • 分组末尾加?标识整个分组完全可选,该片段存在时正常提取formname值,不存在时直接跳过匹配后续字段
  • 两种日志格式都可以被正常匹配,不会出现匹配失败问题

可选配置

如果需要formname字段即使无值时也默认保留空字符串,可在Logstash的Grok过滤器配置中补充如下参数:

grok {
  match => { "message" => "上述修正后的Grok模式" }
  add_field => { "formname" => "" }
  overwrite => [ "formname" ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:15:03