Apache-2.2
如何查看每個 Apache 虛擬主機正在使用多少頻寬?
我設置了 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 一樣)。