開源網站訪問統計系統Piwik的基本使用


piwik簡介

最近試用了開源的網站訪問統計系統——piwik,覺得功能非常強大,一點不輸於商業產品百度統計與google analysis,替代他們完全沒有問題。

關於piwik的簡介可以去piwik的官網(http://piwik.org)查看,有詳細的介紹和視頻演示。之前codeweblog.com也有簡單的介紹(http://www.codeweblog.com/p/piwik)。

以下是采集到的分析數據效果圖:

開源網站訪問統計系統Piwik的基本使用

開源網站訪問統計系統Piwik的基本使用

piwik安裝

首先需要解決依賴項(http://piwik.org/docs/requirements/),ubuntu/debian使用下列命令安裝所有依賴項(我用的是apache,別的webserver請替換成相應的軟件包)

apt-get install apache2 mysql-server php5 php5-mysql php5-gd 

如需定位訪客的地理位置,參考官方文檔: http://piwik.org/docs/geo-locate/, 或者使用JS追蹤的方式,通過JS代碼獲取訪客的IP歸屬地。

安裝過程參考官方文檔(http://piwik.org/docs/installation),比較簡單,就不詳細介紹了。

配置好apache之后,通過瀏覽器訪問,一步步配置完畢之后,看到如下界面之后,就可以使用了:

開源網站訪問統計系統Piwik的基本使用

開源網站訪問統計系統Piwik的基本使用

開源網站訪問統計系統Piwik的基本使用

piwik使用

剛裝好的Piwik是空空如也的,此時我們需要這個系統幫我們統計數據。

目前Piwik支持兩種采集用戶訪問記錄的方式: JS追蹤訪問日志追蹤

JS追蹤可定制型高,可以獲取到用戶的分辨率,瀏覽器插件等等,還可以捕獲自定義變量。訪問日志追蹤(如apache的accesslog)可以追蹤到用戶的錯誤請求(如40X錯誤,有助於捕獲到惡意用戶和爬蟲,蜘蛛等等),目前這兩種追蹤得到的數據還不支持合並

這兩種追蹤模式的詳細優缺點可以參考官方的這篇文檔: http://piwik.org/faq/log-analytics-tool/faq_16305/

JS追蹤

管理設置-網站-右邊即可看到"顯示跟蹤代碼",如下圖所示:

開源網站訪問統計系統Piwik的基本使用

將此代碼復制到web項目的footer中即可(即所有頁面都嵌入這段相同的js代碼,用於捕獲用戶的信息,如分辨率,瀏覽器UA,IP等),還可以按照官方文檔,捕獲自定義變量。

參考官方文檔的幫助,這里不再贅述: http://piwik.org/docs/javascript-tracking/

log追蹤

log追蹤無需修改web項目,但是必須要有登錄服務器並讀取accesslog的權限。

log追蹤的詳細用法參考官方文檔: http://piwik.org/faq/log-analytics-tool/, https://piwik.org/log-analytics/

log追蹤的過程是解析webserver的accesslog,然后通過piwik的API上傳,最終在piwik頁面上展示。

這個過程不用自己去實現了,piwik的壓縮包中已經帶有一個python腳本可以幫助我們完成這個工作了,該腳本存儲於piwik目錄下的misc/log-analytics/import_logs.py

將這個腳本遠程拷貝到目標服務器上,按照腳本的參數格式執行即可,我的命令行:

    ./import_logs.py --url=http://192.168.1.106/piwik/ --idsite=1 --recorders=2 --token-auth=319fb461d3225905039551e861edde60 --enable-static --enable-bots --enable-http-errors --enable-http-redirects /var/log/apache2/access.log 

使用--help參數即可看到這個腳本的命令行,只有一個--url參數是必須的,指明piwik的訪問路徑。詳細幫助參見官方文檔(https://piwik.org/docs/log-analytics-tool-how-to/),這里對我使用的參數做一下簡介:

--idsite表明抓取到的信息上傳到哪個序號對應的網站(這里的參數為1,代表解析的數據會統計到first_web這個網站中)

--token-auth這個參數是管理員的訪問token,在系統頁面最頂上的API點開即可看到,如下圖所示。這個參數可以使用--login=LOGIN --password=PASSWORD這兩個參數替代,必須是管理員的賬戶和密碼。

開源網站訪問統計系統Piwik的基本使用

--recorders使用多線程解析,默認為1,官方建議這個參數和核心數一致。

--enable-static --enable-bots --enable-http-errors這三個參數基本上把apache的accesslog能抓取到的全部信息都抓全了,抓取靜態資源(jpg,png,js,css等非html的訪問),抓取bots(不知道這個是什么,猜測是否是機器人?),抓取html錯誤碼(如40X請求等等)

/var/log/apache2/access.logapache的accesslog存放路徑,常見的webserver如nginx,lighthttpd等,腳本自帶有解析引擎,無需別的參數,如果非常見webserver的話,加上--log-format-regex這個參數來自定義日志格式抓取。

當腳本執行完畢時,即可在piwik中看到網站的訪問記錄了,使用也很方便。長期使用可以寫入crontab即可。

注意:

  • log解析的方式追蹤比較慢,不適合實時追蹤用戶訪問記錄,建議每過幾小時執行一次crontab,來定時解析log。
  • 如果開啟了--enable-static --enable-bots --enable-http-errors這三個參數,解析過程將會很緩慢(我這邊大概十幾條每秒),不要讓crontab太頻繁,會直接讓mysql數據庫超出連接而掛掉,我是每4小時執行一次crontab。

其他一些問題

1,log追蹤和js追蹤的方式互有優勢,都可以抓到一些對方所無法獲取的信息,但是目前這兩種方式追蹤到的數據還不支持合並,因此,需要同時使用這兩種方式追蹤時,建議分開兩個不同的網站追蹤不同的數據,如first_web用於JS追蹤,first_web(log)用於log追蹤。參見官方FAQ: http://piwik.org/faq/log-analytics-tool/faq_16307/

2,當訪問量較高時,請關閉Piwik觸發處理,已提高頁面響應,刷新報表數據由后台crontab執行,參考如下圖所示,crontab的設置見右邊的提示中的官方文檔:

開源網站訪問統計系統Piwik的基本使用

3,自動郵件的時間有些問題,piwik內部時間使用的是UTC時間,也就是中國時區(CST,東八區)比UTC時區的時間快8個小時。如果使用默認的郵件發送時間0點發送,將會收到前天的訪問記錄報表(中國時間0點對應UTC時間昨天的16點,那么此時發昨天的報表就會收到前天的報告)。

這個問題已經給官方提過issue,不過官方還沒有回應我: http://forum.piwik.org/read.php?2,111809

暫時的方案是把時間改到8點以后,就可以收到正常的郵件報表。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM