为什么需要提取?使用一整行日志无法分析,需要提取单独的字段
- 分析哪个IP访问量大
- 分析Nginx的响应状态码
Nginx日志格式
192.168.238.90 - - [01/Aug/2020:14:53:35 +0800] "GET /sjg666 HTTP/1.1" 404 3650 "-" "Chrome xxx" "-"
Nginx日志格式配置
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';Grok提取利器,需要掌握正则表达式。借助Kibana的Grok工具验证提取
自写正则提取(建议)
内置规则提取(简化):/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.1.2/patterns/grok-patterns