Answers:
您在这里可能想要做的是分析所有这些日志文件一次,然后从此以后仅继续分析当前日志文件。
最简单的操作是将所有这些文件解压缩到一个文件中,然后让awstats运行一次,然后再将awstats指向您的access.log文件。
awstats通常具有一个名为logresolvemerge.pl的脚本,该脚本可以读取压缩文件,并将其适当合并以供awstats执行分析。
要合并所有现有的,运行
perl /usr/share/awstats/tools/logresolvemerge.pl /var/log/nginx/access.log* > /tmp/nginx.tmplog
这可能需要一段时间。
然后,您可以让awstats在此文件上运行一次(适当设置LogFile)。
从那时起,您应该在最新的日志文件上运行awstats-这是当前配置所执行的操作。
根据运行awstats与轮换nginx日志文件的频率,您可能希望它同时读取当前日志文件和上一个日志文件。(例如,如果您每天在12时轮换nginx日志文件,但是每天在1时轮流运行awstats,则每当awstats运行时,日志文件将仅包含自上次轮换以来写入的内容)。您可以在LogFile命令中使用logresolvemerge.pl,如下所示:
LogFile="/usr/share/awstats/tools/logresolvemerge.pl /var/log/nginx/access.log /var/log/nginx/access.log.1.gz |"
这告诉awstats以两个日志文件作为参数运行logresolvemerge.pl命令,而awstats将读取该脚本的输出(这就是管道|的功能)
logresolvemerge.pl
输出输出到awstats是一个很好的解决方案。
或者,您可以使用实时日志分析器,例如GoAccess。这真的非常快,您无需解压缩任何日志。apache & nginx
http://goaccess.prosoftcorp.com/
zcat -f access.log* | goaccess -a -s -b
要么
zcat access.log.*.gz | goaccess -a -s -b