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

如何编写适配多格式Nginx错误日志的单个Grok过滤规则

解决方案

可以通过Grok的可选分组语法调整现有规则,实现单个模式同时匹配包含/缺失upstream、referrer字段的Nginx错误日志。

修改后的完整Grok规则

(?<timestamp>%{YEAR}[./]%{MONTHNUM}[./]%{MONTHDAY} %{TIME}) \[%{LOGLEVEL:severity}\] %{POSINT:pid}#%{NUMBER:threadid}\: \*%{NUMBER:connectionid} %{GREEDYDATA:message}, client: %{IP:client}, server: %{GREEDYDATA:server}, request: "%{GREEDYDATA:request}"(?:, upstream: "%{URI:upstream}")?, host: "%{IPORHOST:host}"(?:, referrer: "(?:%{URI:referrer})")?

规则说明

  • Grok中(?:内容)?表示可选非捕获分组:分组内的整段内容存在时就匹配提取字段,不存在时直接跳过该段,不会触发整体匹配失败
  • 两个可选分组相互独立,可覆盖3种场景:同时存在两个字段、仅存在其中一个字段、两个字段都不存在
  • 如果部分日志的upstream/referrer值不是标准URI格式,可把对应位置的%{URI}替换为%{DATA}适配异常值场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:27:03