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

我正在寻找一种方法来存储日志的通用格式,以便他们可以很容易地被大多数工具识别和分析。

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

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

在这里输入图像说明

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

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

如果您有兴趣logging请求时间,那么您需要修改您的nginxconfiguration文件并添加您的自定义日志格式:

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现在正在logging请求时间。 然后,您可以将%T添加到您的goaccess log-format如下所示:

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

GoAccess在他们的页面上说:

Apache / Nginx Common / Combined + VHosts

如果您的日志不parsing,那么您需要查看GoAccess日志并查看错误。

另外:

GoAccess允许任何自定义的日志格式string。

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