Apache-2.2

如何查看每個 Apache 虛擬主機正在使用多少頻寬?

  • April 28, 2014

我設置了 Apache 來服務多個虛擬主機,我想看看每個站點使用了多少頻寬。我可以看到整個伺服器使用了多少,但我想要更詳細的報告。

我發現的大多數東西都是為了限制虛擬主機的頻寬,但我不想這樣做;我只想看看哪些網站正在使用多少頻寬。

這不是用於計費目的,僅用於資訊。

我應該使用 apache 模組嗎?還是有其他方法可以做到這一點?

您需要的資訊都在日誌中,因此您應該查看日誌分析器,例如AStats。另一種選擇是使用Google分析。

為了分析日誌,這裡有一個粗略的例子,你可以用它來告訴你一個日誌文件從命令行報告了多少 MB 的流量:

cat /var/log/apache/access.log | awk '{SUM+=$10}END{print SUM/1024/1024}'

我建議您使用美妙的 apache 日誌記錄機制及其鮮為人知的**%I%O**標誌:

定義格式:

LogFormat “%t %a %v %U%q %I %O” IOFormat

在你的主httpd.conf中使用它:

CustomLog /var/log/apache2/all-bw.log IOFormat

這些值可能並未考慮所有標頭資訊,但對於準確了解 VirtualHost 流量而言非常準確。

使用 perl 腳本掃描日誌以每 n 分鐘(例如 5 分鐘)匯總每個虛擬主機並將其發送到 cacti。

這些標誌由 mod_logio 提供,它可能內置在您的 Apache 中(就像我的 Debian 的 Apache 一樣)。

引用自:https://serverfault.com/questions/14613