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

如何用Logstash Grok模式解析自定义Nginx access.log?

针对Nginx main日志格式的Logstash Grok匹配方案

你的Nginx main日志格式对应的Grok匹配模式可以直接按字段对应编写,以下是完整实用方案:

1. 基础Grok匹配模式

直接对应日志格式的完整pattern:

%{IPORHOST:remote_addr} - %{DATA:remote_user} \[%{HTTPDATE:time_local}\] %{QS:request} %{NUMBER:status:int} %{NUMBER:body_bytes_sent:int} %{QS:http_referer} %{QS:http_user_agent} %{QS:http_x_forwarded_for}

2. 各字段匹配说明

  • %{IPORHOST:remote_addr}:匹配$remote_addr,兼容IP地址或主机名
  • %{DATA:remote_user}:匹配$remote_user,支持日志中用-表示无用户的场景
  • \[%{HTTPDATE:time_local}\]:匹配[$time_local],HTTPDATE是Grok内置的、专门适配Nginx时间格式(如10/Oct/2000:13:55:36 +0000)的模式
  • %{QS:request}:匹配带引号的$request,QS是内置的带引号字符串匹配规则
  • %{NUMBER:status:int}:匹配$status,指定类型为整数方便后续统计分析
  • %{NUMBER:body_bytes_sent:int}:匹配$body_bytes_sent,指定类型为整数
  • %{QS:http_referer}:匹配带引号的$http_referer
  • %{QS:http_user_agent}:匹配带引号的$http_user_agent
  • %{QS:http_x_forwarded_for}:匹配带引号的$http_x_forwarded_for

3. Logstash配置示例

在Logstash配置文件的filter模块中可以这样配置:

filter {
  grok {
    match => { "message" => "%{IPORHOST:remote_addr} - %{DATA:remote_user} \[%{HTTPDATE:time_local}\] %{QS:request} %{NUMBER:status:int} %{NUMBER:body_bytes_sent:int} %{QS:http_referer} %{QS:http_user_agent} %{QS:http_x_forwarded_for}" }
  }
  # 可选优化:将空用户标识(-)转为空值,移除原始message字段
  mutate {
    gsub => [ "remote_user", "^-$", "" ]
    remove_field => [ "message" ]
  }
  # 可选优化:将日志时间转为Logstash标准时间字段
  date {
    match => [ "time_local", "dd/MMM/yyyy:HH:mm:ss Z" ]
    target => "@timestamp"
  }
}

4. 进阶:拆分请求字段

如果需要把$request拆分为请求方法、路径、协议三个独立字段,可将%{QS:request}替换为:

"%{WORD:request_method} %{URIPATHPARAM:request_path} %{DATA:request_protocol}"

对应的完整pattern变为:

%{IPORHOST:remote_addr} - %{DATA:remote_user} \[%{HTTPDATE:time_local}\] "%{WORD:request_method} %{URIPATHPARAM:request_path} %{DATA:request_protocol}" %{NUMBER:status:int} %{NUMBER:body_bytes_sent:int} %{QS:http_referer} %{QS:http_user_agent} %{QS:http_x_forwarded_for}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 02:24:33