Nginx 日志解析:GoAccess 格式配置
Nginx 日志解析:GoAccess 格式配置
本文将展示如何将 Nginx 日志数据转换为 GoAccess 可识别的格式,方便使用 GoAccess 进行日志分析。
Nginx 日志示例:
{ "@timestamp":"2023-04-23T16:52:06+08:00", "host":"10.0.0.4", "clientip":"58.32.238.44", "remote_user":"-", "request":"GET /wms/rf/pick/pref HTTP/1.1", "http_user_agent":"okhttp/4.5.0", "size":762, "responsetime":0.008, "uct":0.001, "uht":0.008 , "upstreamtime":"0.008", "upstreamhost":"10.0.0.4:6001", "http_host":"rmwms.pepsichina.cn", "url":"/wms/rf/pick/pref", "domain":"rmwms.pepsichina.cn", "xff":"-", "referer":"-", "status":"200", "connection_upgrade":"close", "http_upgrade", "-" }
根据示例生成的 GoAccess log-format:
%{JSON:@timestamp} %h %^[%d:%t %^] '%r' %s %b '%u' '%^' '%^' '%^' %T %^ %^ %^ %^ %^ %^ %^ %^ %^ %^ %^ %^ %^ %^ %^ %^ %^ %^ %^
解释:
%{JSON:@timestamp}:提取日志中@timestamp字段的值,表示访问时间。%h:提取日志中host字段的值,表示服务器 IP 地址。%^[%d:%t %^]:提取日志中@timestamp字段的日期和时间部分。'%r':提取日志中request字段的值,表示请求信息。%s:提取日志中status字段的值,表示 HTTP 状态码。%b:提取日志中size字段的值,表示响应大小。'%u':提取日志中http_user_agent字段的值,表示用户代理。'%^':用于提取其他字段的值,例如referer、xff等。%T:提取日志中responsetime字段的值,表示响应时间。
使用 GoAccess 解析 Nginx 日志时,需要将 Nginx 日志配置成上述格式,才能让 GoAccess 识别并分析日志数据。
注意事项:
- GoAccess 支持多种日志格式,可以根据实际需求选择合适的格式。
- 为了提高解析效率,建议将 Nginx 日志配置成 GoAccess 支持的格式。
- 可以使用
goaccess -h查看 GoAccess 支持的所有日志格式。
原文地址: https://www.cveoy.top/t/topic/nF2p 著作权归作者所有。请勿转载和采集!