我已经浏览过 awstats 文档一段时间了,但 Logformat 似乎出现了问题。
我在 awstats 中使用以下内容,
LogFormat = "%host - - %host_r %time1 %methodurl %code %bytesd %refererquot %uaquot %otherquot"
(来自 nginx)
log_format main
'$remote_addr - $remote_user [$time_local] $request '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
答案1
我认为您的日志行中缺少"
一些对象,而其他不需要它们的对象周围却有这些对象。
尝试
log_format main
'$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
答案2
确实如此。从 $status 中删除“”并将其放入 $request 应该可以解决问题。
此外,如果您像我一样已经拥有大量“损坏”的日志,您可以运行:
sed -i "s/00\]\ /00\]\ \"/g" access.log
和
sed -i "s/\(HTTP\/[0-9].[0-9]\)\ \"\([0-9][0-9][0-9]\)\"/\1\"\ \2/g" access.log
这将使旧日志可供 awstats 使用。