webalizer是一個高效的、免費的web伺服器日誌分析程式。其分析結果以HTML文件格式保存,從而可以很方便的透過web伺服器進行瀏覽。Internet上的很多站點都使用webalizer進行web伺服器日誌分析。Webalizer具有以下一些特性︰
1. 為是用C寫的程式,所以其具有很高的營運效率。在主頻為200Mhz的機器上,webalizer每秒鐘可以分析10000條記錄,所以分析一個40M大小的日誌文件只需要15秒。
2. webalizer支持標準的一般日誌文件格式(Common Logfile Format);除此之外,也支持幾種組合日誌格式(Combined Logfile Format)的變種,從而可以統計客戶情況以及客戶作業系統類型。並且現下webalizer已經可以支持wu-ftpd xferlog日誌格式以及squid日誌文件格式了。
3. 支持命令行配置以及配置文件。
4. 可以支持多種語言,也可以自己進行本地化工作。
5. 支持多種平台,比如UNIX、linux、NT, OS/2 和 MacOS等。
安裝︰
1.從webalizer的官方站點http://www.mrunix.net/webalizer/下載webalizer,當前的最新版本是webalizer-2.01-06-src.tgz。
2.首先解開源代碼包︰
tar xvzf webalizer-2.01-06-src.tgz
3.在生成的目錄中有個lang目錄,該目錄中保存了各種語言文件,但是只有繁體中文版本,可以自己轉換成簡體,或者自己重新翻譯一下。
4.然后進入生成的目錄︰
./configure make --with-language=chinese
5.編譯成功后,會產生一個webalizer可執行文件,可以將其拷貝到/usr/sbin/目錄下︰
cp webalizer /usr/sbin/
然后就可以開始配置webalizer了。
配置︰
上面說過,可以透過命令行配置webalizer,也可以透過配置文件進行配置,在本文中我們將介紹使用命令行參數進行配置,需要了解配置文件使用方法的朋友可以參考README文件,裡面有很詳細的介紹。
可以執行webalizer h得到所有命令行參數︰
Usage: webalizer [options] [log file] -h = 打印幫助訊息 -v -V = 打印版本訊息 -d = 打印附加調試訊息 -F type = 日誌格式類型. type= (clf | ftp | squid) -i = 忽略歷史文件 -p = 保留狀態 (遞增模式) -q = 忽略消息訊息 -Q = 忽略所有訊息 -Y = 忽略國家圖形 -G = 忽略小時統計圖形 -H = 忽略小時統計訊息 -L = 忽略彩色圖例 -l num = 在圖形中使用數字背景線 -m num = 訪問超時 (seconds) -T = 打印時間訊息 -c file = 指定配置文件 -n name = 使用的主機名 -o dir = 結果輸出目錄 -t name = 指定報告題目上的主機名 -a name = 隱藏用戶代理名稱 -r name = 隱藏訪問鏈接 -s name = 隱藏客戶 -u name = 隱藏URL -x name = 使用文件擴展名 -P name = 頁面類型擴展名 -I name = index別名 -A num = 顯示前幾名客戶類型 -C num = 顯示前幾名國家 -R num = 顯示前幾名鏈接 -S num = 顯示前幾名客戶 -U num = 顯示前幾名URLs -e num = 顯示前幾名訪問頁面 -E num = 顯示前幾名不存在的頁面 -X = 隱藏個別用戶 -D name = 使用dns緩存文件 -N num = DNS 進程數 (0=禁用dns)
假設,web伺服器主機名為www.test.com,統計站點域名為www.test.com, 訪問日誌為/var/log/httpd/access_log, 我們將webalizer分析結果輸出到/var/www/html/log下面。則我們可以建立以下腳本/etc/rc.d/webalizer︰
#!/bin/sh run=/usr/sbin/webalizer $run -F clf -p -n ' ' -t 'www.test.com' -o /var/www/html/log /var/log/httpd/access_log
說明︰
-F clf 指明我們的web日誌格式為標準的一般日誌文件格式(Common Logfile Format)
-p 指定使用遞增模式,這就是說每作一次分析后,webalizer會生產一個歷史文件,這樣下一次分析時就可以不分析已經處理過的部分。這樣我們就可以在短時間內轉換我們的日誌文件,而不用擔心訪問量太大時日誌文件無限增大了。
-n “ “ 指定伺服器主機名為空,這樣輸出結果會美觀一些。
-o “www.test.com” 指定輸出結果標題。
/var/log/httpd/access_log:指定日誌文件
然后在/etc/crontab中加入︰
01 1 * * * root /etc/rc.d/webalizer
即每天凌晨1點執行該腳本。 然后營運/etc/rc.d/init.d/crond reload重載入crond服務。
測試︰
執行以下命令:
# /etc/rc.d/webalizer
然后在瀏覽器中訪問http://www.test.com/log/就可以看到webalizer的分析結果了。
注意︰如果您使用了中文語言文件,但是您的linux不支持中文,則在產生的圖片中文字可能為亂碼。 |