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

如何调整Logstash自定义Grok模式以提取日志中HARS-X6790字段

问题根因

原Grok规则存在两个核心问题导致匹配错位:

  1. 漏匹配了行号与时间戳之间的HARS-X6790设备标识字段,匹配位整体偏移
  2. 字段间仅写死单个空格作为分隔符,和日志里实际存在的连续多空格分隔格式不兼容,直接导致NUMBER模式错误抓取到设备标识里的数字片段6790,时间戳匹配完全失效。
修正后的Grok规则
%{NUMBER:ligne}\s+%{NOTSPACE:device_id}\s+%{TIMESTAMP_ISO8601:syslog_timestamp}\s+%{GREEDYDATA:syslog_message}
规则说明
  • 新增device_id匹配位,使用%{NOTSPACE}模式捕获连续非空格的设备标识字段,补全原规则缺失的匹配段,从根源解决字段偏移问题
  • 所有字段分隔位置使用\s+匹配1个及以上任意空白字符,兼容日志中存在的多空格、制表符等空白分隔场景,不要写死固定数量的空格作为日志字段分隔符,避免因为空格数量差异出现匹配错位
  • 匹配成功后各字段取值完全符合预期:
    • ligne:提取日志开头的行号值2589522
    • device_id:提取设备标识HARS-X6790
    • syslog_timestamp:正确捕获时间值2022-08-05 08:55:15
    • syslog_message:捕获剩余全部日志内容--EX: SCR45778554 ID '346402454540629'

如果需要进一步拆分日志消息里的SCR单号、单引号包裹的ID值,可以在现有规则基础上,把末尾的%{GREEDYDATA:syslog_message}替换为更细粒度的匹配模式即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 10:30:39