站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

Webalizer-分析 ApacheLog 產生流量圖

前言

[webalizer] 為一套遵循 GPL 協議的開放源始碼 Log 分析器,它能夠幫助您分析包括使用者、使用者資訊、訪問頁面數、點擊數、更新時間、作業系統、瀏覽器版本、搜索引擎、關鍵字、錯誤鏈接...等等,支援所有的 Web 伺服器所產生的 Log。

[webalizer] 可分析的 Log 類型如下:

實作環境

安裝及設定

步驟1.安裝 libiconv 套件

切換至 Ports Tree 路徑安裝 libiconv 套件

 #cd /usr/ports/converters/libiconv                                            //切換至安裝路徑 
 #make install clean                                                           //安裝並清除安裝過程中不必要的檔案 

步驟2.安裝 webalizer 套件

在安裝 webalizer 套件以前請先將 [顏國雄老師中文亂碼修正檔-webalizer_patch.pl] 下載至 /usr/ports/www/webalizer 目錄下,先安裝完預設的中文語系檔,但因為 GD 圖表無法正確顯示中文所以這時便可執行顏國雄老師中文亂碼修正檔將 GD 圖表內中文字改回英文便不會造成之後 GD 圖表內中文字為亂碼的現象,至於安裝前為何要將語系檔轉換為 UTF-8 格式? 因為若是不轉換的話當執行完流量統計後你會發現 Search String 內容會為亂碼,瞭解後請切換至 Ports Tree 路徑安裝 webalizer 套件

 #cd /usr/ports/www/webalizer                                                  //切換至安裝路徑
 #make clean fetch extract patch configure WEBALIZER_LANG=chinese              //安裝中文語系 (但 GD 圖表內文字會為亂碼)
 #perl webalizer_patch.pl work/webalizer-2.01-10                               //執行顏國雄老師中文修正檔可消除中文亂碼
 #cd work/webalizer-2.01-10/lang                                               //切換至語系檔目錄
 #cp webalizer_lang.chinese webalizer_lang.chinese.big5                        //將原 Big5 語系檔複製一份
 #iconv -f BIG5 -t UTF-8 webalizer_lang.chinese.big5 ; webalizer_lang.chinese  //轉換語系檔為 UTF-8 格式
 #make install  clean                                                          //安裝套件並清除安裝中不必要的檔案

步驟3.修改 webalizer 設定檔 (webalizer.conf)

安裝相關套件完成後開始進行 webalizer 設定檔 (webalizer.conf) 修改其內容如下

 #cd /usr/local/etc                                                            //切換路徑
 #cp webalizer.conf-dist webalizer.conf                                        //複製範例檔來修改
 #vi webalizer.conf                                                            //修改內容如下
 LogFile        /var/lib/httpd/logs/access_log                                 //預設值,讀取 Log 路徑
 LogFile        /home/log/httpd-access.log                                     //修改後 (屆時修改為自動化時就必須註解此行)
 OutputDir      /var/lib/httpd/htdocs/usage                                    //預設值,指定資料輸出資料夾
 OutputDir      /usr/local/www/data/analysis/webalizer                         //修改後
 Incremental    no                                                             //預設值,只更新增加的部份不再分析舊有資料
 Incremental    yes                                                            //修改後
 ReportTitle    Usage Statistics for                                           //預設值,網頁標題說明文字
 ReportTitle    Webs Site 流量統計:                                            //修改後
 HostName       localhost                                                      //預設值,設定主機名稱
 HostName       www.weithenn.org                                               //修改後

步驟4.建立 webalizer 分析結果存放資料夾

建立屆時存放 webalizer 分析結果圖表的資料夾

 #cd /usr/local/www/data/analysis                                              //切換預放置分析流量的路徑
 #mkdir webalizer                                                              //建立資料夾

步驟5.執行 webalizer 流量統計

因為此次實作中 Apache Access Log 為每天產生,所以可先將舊有的 Log 先串成一個之後在修改為每天自動分析,下列 cat 指令即為將每天產生的 Apache Log 串成月份後來進行分析。 

 #cat 2007_05*-access.log > 200705.log                                         //將五月份 Apache Access Log 串成一個檔

串成一個月份的 Apache Access Log 便可執行 webalizer 進行流量分析統計

 #/usr/local/bin/webalizer /home/log/200705.log                                //分析五月份 Apache Access Log
 Webalizer V2.01-10 (FreeBSD 6.2-RELEASE-p5) English
 Using logfile 200705.log (clf)
 Creating output in /usr/local/www/data/analysis/webalizer
 Hostname for reports is 'www.weithenn.org'
 Reading history file... webalizer.hist
 Reading previous run data.. webalizer.current
 Warning: Truncating oversized referrer field [8679]
 ...略
 Warning: Truncating oversized referrer field [715059]
 Saving current run data... [06/20/2007 23:59:59]
 Generating report for June 2007
 Generating summary report
 Saving history information...
 735502 records in 9.73 seconds, 75617/sec

步驟6.設定排程

因為此次實作主機其 Web Log 為每天產生的,所以就寫個簡單的 Shell Script 來自動分析每天的 Web Log 吧,至於分析的 Apache Log 路徑是因為此次實作主機每天凌晨才將營運網站主機的 Web Log 同步到此台分析主機,因此分析的 Web Log 為前一天的。

 #vi /usr/local/sbin/webalizer.sh                                              //編輯 Shell Script 內容如下
 #!/bin/sh
 /usr/local/bin/webalizer /home/backup/log/`date -v-1d +%Y_%m_%d`-access.log > /dev/null 2>&1

修改排程使系統每天早上六點半自動執行分析 Web Log 的工作

 #crontab -e
 30 6 * * * /usr/local/sbin/webalizer.sh                                       //每天早上六點半執行 webalizer.sh

參考

[webalizer]

[FreeBSD Man Pages - webalizer]

[ 游志峰的網路架設筆記]

Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com