与虚拟主机的Apache日志通用分析器

我在Ubuntu中使用了Apache,创build了几个虚拟主机,都指向相同的访问日志。 我已经login了虚拟主机域。

我正在寻找一种方法来显示同一报告中所有虚拟主机的信息,例如:

vhosts ——访问

domain1.net — 3

domain2.net — 8

我已经检查过像awstats , webalizer , goaccess和其他工具,但是我只能从他们那里得到每个虚拟主机的分离的报告,或者只有一个报告,包括所有的虚拟主机,就好像他们只有一个一样。

我查了另一个答案,如分析Apache日志的工具 , 一个软件来分析Apache日志是必要的和https://serverfault.com/questions/296316/web-log-analyzer-that-c​​an-generate-a-single-report-为多个域,但不解决我的需求。

考虑到我不希望像awstats (在一些configuration之后)获得所有我的虚拟主机资源的报告,我想检查虚拟主机之间的差异。

我的日志格式是(可以根据需要更改):

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" 

日志看起来像:

“/test.php HTTP / 1.1”200 301“ – ”“Mozilla / 5.0(X11; Linux x86_64)AppleWebKit / 537.36(KHTML,像Gecko)Chrome / 27.0.1453.93 Safari / 537.36“

test.php HTTP / 1.1“200 301” – “”Mozilla / 5.0(X11; Linux x86_64)AppleWebKit / 537.36(KHTML,像Gecko)Chrome / 27.0.1453.93 Safari / 537.36“

请让我知道是否需要其他信息。 先谢谢了。

您可以使用简单的shell脚本来计算每个虚拟主机的出现次数:

 $ awk '{print $1}' access.log | sort | uniq -c | sort -gr 

为了归档目的:

我发现webalizer有一个部分,我可以检查点击,文件,KBytes和我的Apache的虚拟主机列表访问。 该部分是“[网站]”

只要确保使用包含虚拟主机的LogFormat,例如:

 LogFormat "%v:%p %h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" vhost_combined 

日志显示为:

在这里输入图像说明