题 如何分析Awstats的多个gz日志文件?


我是awstats的新手,并在我的apache webserver上配置了Awstats来分析nginx访问日志(nginx webserver是我的django应用程序),我可以从中获取统计数据 LogFile=/var/log/nginx/access.log 但是如何分析多个gzip格式的日志。如access.log.1.gz ... access.log.40.gz。我有很多日志需要分析。


18
2017-08-03 11:20






答案:


你可能想要做的是分析所有这些日志文件,然后继续分析当时的日志文件。

最简单的方法是将所有这些文件解压缩到一个文件中,然后让awstats运行一次,然后从access.log文件中指向awstats。

awstats通常有一个名为logresolvemerge.pl的脚本,它可以读取压缩文件,并将它们合适地合并为awstats来进行analsyis。

要合并所有现有的,请运行

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将读取该脚本的输出(这就是管道的作用)


28
2017-08-05 00:04



我不知道awstats脚本可以处理配置文件中的管道。尼斯+ 1。 - d-_-b
同意 - 管道 logresolvemerge.pl 输出到awstats是一个很好的解决方案。 - Jez
关于管道,请参阅 stackoverflow.com/questions/13832701/... - brauliobo


或者,您可以使用实时日志分析器,例如GoAccess。它真的很快,你不需要解压缩任何日志。 apache & nginx

http://goaccess.prosoftcorp.com/

zcat -f access.log* | goaccess -a -s -b

要么

zcat access.log.*.gz | goaccess -a -s -b

7
2017-08-06 03:46