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

创建Grok模式时如何处理贪婪数据并提取日志自定义词(含Sub-feature name)

Grok模式创建中的贪婪数据处理及特殊字段匹配方案

日志示例

01-10-2022 14:05:11.584 INFO  - Destination IP:0:0:0:0:0:0:0:1 | Source System IP:0:0:0:0:0:0:0:1 | BrowserName:Chrome | BrowserVersion:105 | requestURI:/dashboard | Feature name:Dashboard | Application:null | SubFeature name:Line Check | UserId:tushar | ApiCalled:/ruambot/api/getGraph() | ApiStatus:Success | Login Time:01-10-2022 13:46:42

1. 贪婪数据的处理方案

Grok默认的.*是贪婪匹配规则,会尽可能匹配更多内容,极易出现跨字段提取错误。针对这类以|作为字段分隔符的日志,可通过两种方式解决:

  • 非贪婪匹配替代:用.*?替换.*,它会匹配到第一个分隔符就停止,避免过度匹配。
  • 字符集范围限定:用[^|]+匹配任意非|的字符,直接限定匹配范围不跨过分隔符,这种方式性能比非贪婪匹配更优。

2. 带空格字段(如SubFeature name)的匹配方案

字段名包含空格时,只需在Grok模式中完整写出带空格的字段名,再搭配对应的匹配规则即可。注意字段名的空格要和日志中的完全一致,不能省略或替换。

完整Grok模式示例

%{DATE_US:log_date} %{TIME:log_time} %{LOGLEVEL:loglevel}  - Destination IP:%{DATA:destination_ip} \| Source System IP:%{DATA:source_system_ip} \| BrowserName:%{DATA:browser_name} \| BrowserVersion:%{DATA:browser_version} \| requestURI:%{DATA:request_uri} \| Feature name:%{DATA:feature_name} \| Application:%{DATA:application} \| SubFeature name:%{DATA:subfeature_name} \| UserId:%{DATA:user_id} \| ApiCalled:%{DATA:api_called} \| ApiStatus:%{DATA:api_status} \| Login Time:%{DATE_US:login_date} %{TIME:login_time}

说明:

  • 用%{DATA:字段名}匹配字段值,DATA模式本身是.*?非贪婪匹配,结合转义后的分隔符\|,刚好适配日志格式。
  • 所有带空格的字段名(如Destination IP、SubFeature name)都完整写入模式中,确保精准匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:15:27