如何监控 Apache2 中文档根目录每个子目录的传出带宽

如何监控 Apache2 中文档根目录每个子目录的传出带宽

我通过 Google 进行了搜索,找到了监控每个虚拟主机带宽的方法。

我需要一种方法来监视文档根目录子文件夹的传出带宽(并最终暂停)。(我让 cron 运行全局带宽检查器)。

/srv/www/htdocs/user1files
/srv/www/htdocs/user2files

我不想要虚拟主机,因为我不想每次添加“新用户”时都重新启动或“重新加载”Apache。

我认为 Apache 访问日志可能提供一种使用 awk 来汇总所有 /username1/ 的方法:

10.65.10.77 - - [10/Mar/2013:10:20:17 +0000] "GET /user1files/upload.php HTTP/1.1" 200 10945
10.65.10.77 - - [10/Mar/2013:10:20:17 +0000] "GET /user1files/styles.css HTTP/1.1" 304 -

提前谢谢了!

答案1

我想你们自己已经给出了一个答案。

在日志文件条目中,您可以读取以字节为单位的下载内容:

10.65.10.77 - - [10/Mar/2013:10:20:17 +0000] "GET /user1files/upload.php HTTP/1.1" 200 10945
10.65.10.77 - - [10/Mar/2013:10:20:17 +0000] "GET /user1files/styles.css HTTP/1.1" 304 -

第一个文件下载了 10945 字节,第二个文件没有下载(http 响应 304 = 未改变,即,该文件是从浏览器缓存中读取的)。

有许多日志文件分析器可用。格式是“通用日志格式”——如果你搜索它,你很可能找到一些东西。否则,自己编写脚本并不难。这至少会给你一个很好的近似值。

请记住,主机通常设置为不记录 jpeg 和 gif 之类的内容 - 因为日志文件在流量大的网站上增长得非常快。这样的限制会使这种分析变得毫无用处。

相关内容