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


21

我对awstats相当陌生,并且已经在我的apache网络服务器上配置了Awstats来分析nginx访问日志(nginx网络服务器用于django应用程序),我可以从中获取统计信息,LogFile=/var/log/nginx/access.log但是我如何分析gzip格式的多个日志。例如access.log.1.gz ... access.log.40.gz。我有很多日志要分析。

Answers:


29

您在这里可能想要做的是分析所有这些日志文件一次,然后从此以后仅继续分析当前日志文件。

最简单的操作是将所有这些文件解压缩到一个文件中,然后让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将读取该脚本的输出(这就是管道|的功能)


我不知道awstats脚本可以处理配置文件中的管道。不错+1。
d -_- b

同意-将logresolvemerge.pl输出输出到awstats是一个很好的解决方案。
耶斯(Jez)


7

或者,您可以使用实时日志分析器,例如GoAccess。这真的非常快,您无需解压缩任何日志。apache & nginx

http://goaccess.prosoftcorp.com/

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

要么

zcat access.log.*.gz | goaccess -a -s -b
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.