帶有虛擬主機的 Apache 日誌通用分析器
我在 Ubuntu 中使用 Apache,創建了幾個虛擬主機,都指向同一個訪問日誌。我已經登錄了虛擬主機域。
我正在尋找一種方法來獲得統計報告,該報告在同一報告中顯示所有虛擬主機的資訊,例如:
虛擬主機 —— 訪問
domain1.net — 3
domain2.net — 8
我已經檢查過awstats、webalizer、goaccess等工具,但我只能從它們那裡獲得每個虛擬主機的單獨報告,或者只有一份報告,包括所有虛擬主機,就好像它們只是一個一樣。
我檢查了另一個答案,例如分析 apache 日誌的工具,需要一個分析 Apache 日誌的軟體和https://serverfault.com/questions/296316/web-log-analyzer-that-c an-generate-a-single-report- for-multiple-domains但也不能解決我的需求。
考慮到我不希望像我從awstats(經過一些配置)獲得的報告那樣針對我的所有虛擬主機資源,我想檢查虛擬主機之間的差異。
我的日誌格式是(如果需要可以更改):
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, like 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, like Gecko) Chrome/27.0.1453.93 Safari/537.36”
如果需要其他資訊,請告訴我。提前致謝。
出於存檔目的:
我發現 webalizer 有一個部分,我可以在其中檢查 Apache 中虛擬主機列表的 Hits、Files、KBytes 和 Visits。該部分是“
$$ Sites $$" 只要確保使用包含虛擬主機的 LogFormat,例如:
LogFormat "%v:%p %h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" vhost_combined
日誌顯示為:
您可以使用一個簡單的 shell 腳本來計算每個虛擬主機的出現次數:
$ awk '{print $1}' access.log | sort | uniq -c | sort -gr