我设置了 Apache 来服务多个虚拟主机,我想看看每个站点使用了多少带宽。我可以看到整个服务器使用了多少,但我想要更详细的报告。
我发现的大多数东西都是为了限制虚拟主机的带宽,但我不想这样做;我只想看看哪些网站正在使用多少带宽。
这不是用于计费目的,仅用于信息。
我应该使用 apache 模块吗?还是有其他方法可以做到这一点?
我设置了 Apache 来服务多个虚拟主机,我想看看每个站点使用了多少带宽。我可以看到整个服务器使用了多少,但我想要更详细的报告。
我发现的大多数东西都是为了限制虚拟主机的带宽,但我不想这样做;我只想看看哪些网站正在使用多少带宽。
这不是用于计费目的,仅用于信息。
我应该使用 apache 模块吗?还是有其他方法可以做到这一点?
您需要的信息都在日志中,因此您应该查看日志分析器,例如AStats。另一种选择是使用谷歌分析。
为了分析日志,这里有一个粗略的例子,你可以用它来告诉你一个日志文件从命令行报告了多少 MB 的流量:
我建议您使用美妙的 apache 日志记录机制及其鲜为人知的%I和%O标志:
定义格式:
在你的主httpd.conf中使用它:
这些值可能并未考虑所有标头信息,但对于准确了解 VirtualHost 流量而言非常准确。
使用 perl 脚本扫描日志以每 n 分钟(例如 5 分钟)汇总每个虚拟主机并将其发送到 cacti。
这些标志由 mod_logio 提供,它可能内置在您的 Apache 中(就像我的 Debian 的 Apache 一样)。
Awstats是一种方法,但可能不是最好的
如果您决定将 awstats 与 Apache 一起使用,那么开箱即用的它将显示您整个服务器的聚合带宽。
要查看每个虚拟主机的带宽,我建议安装vlogger。
Vlogger 实际上会为您设置为在单独的目录/文件中执行此操作的每个虚拟主机收集 Apache 访问日志信息。
例如,如果您的 Apache 日志文件在 /var/log/apache2 中,典型的 vlogger 安装将为您的虚拟主机创建类似这样的内容(例如 vhost1.com vhost2.com):
Vlogger 为您提供了为您轮换这些日志的选项,提供了一种更改访问日志文件命名模板的方法(例如添加日期),并声称它比 Apache 更好地处理大量日志文件。
这样做的一个缺点是您将不再拥有聚合的服务器视图(您需要单独聚合日志,或者可能使用额外的 apache 设置或其他方法?)。
我会告诫不要使用谷歌分析(或任何基于 javascript 的跟踪)进行服务器带宽监控,因为您依赖客户端通过 javascript 进行报告。GA 不会向您报告禁用了 javascript 的人以及任何爬虫/蜘蛛/机器人。
这是一些用于解析 Xerxes 提出的日志格式的正则表达式。
\[([0-9]+)/(\w+)/([0-9]{4})[^\]]+\]\s(\d{1,3}.\d{1, 3}.\d{1,3}.\d{1,3})\s([^/]+)[^\s]+\s(\d+)\s(\d+)
示例日志:
[12/Jan/2011:14:25:04 +0000] 157.157.12.206 files.hjaltijakobsson.com / 581 669 [12/Jan/2011:14:25:04 +0000] 157.157.12.206 files.hjaltijakobsson.com / 624 747 [12/Jan/2011:14:25:04 +0000] 157.157.12.206 files.hjaltijakobsson.com /icons/blank.gif 687 186 [12/Jan/2011:14:25:04 +0000] 157.157。 12.206 个文件.hjaltijakobsson.com /icons/compressed.gif 693 188 [12/Jan/2011:14:25:04 +0000] 157.157.12.206 个文件.hjaltijakobsson.com /favicon.ico 592 512
火柴:
子模式 1(月中的某天):12
子模式 2(缩写月):1 月
子模式 3(年):2011
子模式 4(访客主机):157.157.12.206
子模式 5(虚拟主机):files.hjaltijakobsson.com
子模式 6(传入字节):581
子模式 7(传出字节):669
干杯。
假设服务器上实际上有多个虚拟主机(因此有多个 site.com.access_log ),对接受的答案进行轻微调整。这将排序并列出每个虚拟主机
和一个压缩日志目录
嗯,您可能会使用 IPTables 和字符串匹配来记录数据包以供以后报告。但仅适用于非 SSL 连接。
或者像 Snort 之类的协议和会话感知可以被鞋拔使用......
正确的。过滤日志是个好主意。我还想在下载文件时获得 Apache 服务器的带宽。
计算
%b
和%d
输出,这将为您提供电流带宽。