与 nginx 一起使用的可移植 nignx HTTP 访问日志格式是什么?

与 nginx 一起使用的可移植 nignx HTTP 访问日志格式是什么?

我正在寻找一种以通用格式存储日志的方法,以便大多数工具可以轻松识别和解析它们。

我对 goaccess 工具自动识别并支持响应时间的格式感兴趣。

到目前为止,似乎默认日志设置无法被识别。

在此处输入图片描述

答案1

Nginx 默认会输出组合日志格式(NCSA)。

如果您从配置对话框中选择第一个选项(或者从配置文件中永久取消注释 NCSA 组合日志格式),GoAccess 将自动识别它。

如果您有兴趣记录请求时间,那么您需要修改 nginx 配置文件并添加自定义日志格式:

vi /etc/nginx/nginx.conf

然后加:

log_format timed_combined '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" ' '$request_time';

并更改访问日志以使用新格式:

access_log /var/log/nginx/timed.log timed_combined;

并重启 nginx

确保你的 access.log 现在正在记录请求时间。然后你可以将其添加%T到 goaccess 中log-format

log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u" %T

答案2

访问他们的页面上写道:

Apache/Nginx 通用/组合 + VHosts

如果您的日志无法解析,那么您需要查看 GoAccess 日志并查看哪里出了问题。

此外:

GoAccess 允许任何自定义日志格式字符串。

因此您可能需要研究如何在自定义格式上指导该工具。

相关内容