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

为自定义时间格式创建Logstash输入与Grok过滤器求助

入门级WebSphere日志Grok解析方案

搞定带双引号的格式不一致问题

  • 直接用Grok内置的QUOTEDSTRING匹配带引号的内容,同时用(?:%{QUOTEDSTRING}|%{DATA})的分支写法兼容不带引号的字段,避免因为引号导致匹配失败。
  • 实际例子:如果日志里有"REQUEST_PATH=/api/v1"和REQUEST_PATH=/api/v2两种写法,对应的Grok片段可以写成REQUEST_PATH=(?:%{QUOTEDSTRING:request_path}|%{DATA:request_path}),两种格式都能匹配到request_path字段。

处理制表符与不规则空格

  • 别用固定的空格或\t匹配分隔符,改用\s+(匹配任意数量的空白字符,包含制表符、多个连续空格),直接解决不规则空白的问题。
  • 比如原模式里的%{DATE:log_date} %{TIME:log_time}(两个空格),改成%{DATE:log_date}\s+%{TIME:log_time}后,不管是1个空格、3个空格还是制表符分隔,都能正常匹配。

入门调试步骤

  • 先抓固定部分:WebSphere日志的时间戳、服务器节点、线程ID这些是固定格式,先用%{TIMESTAMP_ISO8601:timestamp}匹配时间,确保这部分100%匹配成功,再处理可变字段。
  • 逐段测试可变内容:把带引号/不带引号的字段拆成小片段,用Grok调试工具(本地用grokdebug命令,或者ELK的调试器)逐段验证,没问题后再拼接成完整模式。
  • 容错兜底:对不确定的字段,用DATA兜底,别随便用GREEDYDATA(会匹配到行尾,容易打乱后续字段)。

示例Grok模板(适配WebSphere常见格式)

%{TIMESTAMP_ISO8601:timestamp}\s+%{DATA:server_node}\s+%{DATA:thread_id}\s+(?:%{QUOTEDSTRING:log_message}|%{DATA:log_message})\s+%{DATA:logger_class}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:03:30