我在 Ubuntu 中使用 Apache,并创建了多个 vhost,所有 vhost 都指向同一个访问日志。我已经登录虚拟主机域。
我正在寻找一种方法来获取统计报告,该报告在同一报告中显示所有虚拟主机的信息,例如:
vhosts ------ 访问
域名1.net --- 3
域名2.net --- 8
我已经检查过类似的工具统计信息,网络管理者,访问和其他,但我只能从它们那里获得每个虚拟主机的单独报告,或者只能获得一份包括所有虚拟主机的报告,就好像它们只有一个一样。
我检查了另一个答案分析 apache 日志的工具,需要一个分析Apache日志的软件和https://serverfault.com/questions/296316/web-log-analyzer-that-can-generate-a-single-report-for-multiple-domains但也不能解决我的需求。
考虑到我不想收到像统计信息(经过一些配置)对于我的所有 vhosts 资源,我想检查 vhost 之间的差异。
我的日志格式是(如果需要可以更改):
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\""
日志如下:
test.leticia.net:80 127.0.0.1 - - [28/May/2013:12:23:25 -0300] "GET /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.leticia.net:80 127.0.0.1 - - [28/May/2013:12:26:30 -0300] "GET /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"
如果需要其他信息,请告诉我。提前致谢。
答案1
您可以使用一个简单的 shell 脚本来计算每个虚拟主机出现的次数:
$ awk '{print $1}' access.log | sort | uniq -c | sort -gr
答案2
为了存档目的:
我发现 webalizer 有一个部分,我可以在里面检查我的 Apache 中 vhost 列表的点击数、文件数、千字节数和访问次数。该部分是“[Sites]”
只要确保使用包含 vhost 的 LogFormat,例如:
LogFormat "%v:%p %h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" vhost_combined
日志显示如下: