天天看點

網站通路日志統計分析

使用者使用ecs搭建網站,網站的通路日志(nginx,apache通路日志)收集到阿裡雲日志服務中供查詢。為了從通路日志中挖掘出更多價值,日志服務提供了一個docker鏡像,用于實時統計和展示網站通路的一系列名額,例如pv,uv,延時,地理,狀态碼,爬蟲,網絡流量等名額。

網站通路日志統計分析
網站通路日志統計分析

分别以5分鐘、1小時、1天為統計周期,統計每個周期内的日志總數。

分别以1小時、1天為統計周期,統計每個周期内的ip總數。

以天為統計周期,統計通路最多的頁面路徑,以及通路最多的參數。例如請求/fonts/fontawesome-webfont.woff?v=4.2.0,提取出頁面/fonts/fontawesome-webfont.woff 和參數v = 4.2.0

方法指的是http方法,包括get,post,delete,put等。以小時和天為統計周期,統計每個周期内每個方法的日志條數。

統計每個ip所屬的省份,展示所選時間段内每個省份的分布圖。

狀态碼指的是http狀态碼,包括200,401,403,500等常見狀态碼。以小時和天為統計周期,統計每個周期内的狀态碼次數。

浏覽器分為多個子名額,分别統計每一個子名額出現的次數。包括

終端類型

移動終端

非移動終端

浏覽器類型

chrome

safari

ie

firefox

作業系統

mac

window

linux

浏覽器核心

webkit

gecko

統計常見的爬蟲通路量,常見爬蟲包括百度、google、360、今日頭條。

根據referer統計的來源域名,統計來源最高的20個域名。

統計每5分鐘内的網絡請求的延時的平均值和最大值。

統計每天分布最多的延時的分布情況。出現次數較少的延時區間不會加入統計,比如一天内隻有一次延時為8s,大部分的延時都在0.3s 到 0.5s之間,那麼隻會統計0.3->0.4, 0.4->0.5的延時分布。

以小時為機關,根據request_length字段和response_length字段,統計通路的入網流量和出網流量的大小。

nginx/apache通路日志必須接入到阿裡雲日志服務

開通日志服務

開通容器服務(或自己安裝docker鏡像)

有阿裡雲accesskey可以通路日志服務(可以是子帳号)

如果您使用子帳号授權,請參考下邊的權限配置,将${your_project}替換成你的project名稱,${your_logstore}替換成您的通路日志所在的logstore。

自建mysql或者rds(預設使用docker鏡像内的mysql)

實施步驟以ubuntu系統為例,其他系統請以本文檔做參考

通過容器服務:

通路日志接入到阿裡雲日志服務,具體接入方法請參考阿裡雲日志服務文檔。

應用名稱輸入dashboard(或自定義)。

部署叢集選擇剛剛建立的叢集。

點選“使用鏡像建立”。

點選選擇鏡像,選擇阿裡雲鏡像,搜尋dashboard。選中出現的aliyunlog/dashboard鏡像。

在【web路由規則】中,容器端口輸入80,域名輸入dashboard,點選“添加”。

點選确定。

在【服務】中,找到剛剛建立的服務(dashboard,或自定義服務名稱),點選服務名稱,在出現的基本資訊中找到通路端點,例如通路端點。

通過ecs安裝鏡像:

在浏覽器中打開上述url,開始使用。

首次打開dashboard,需要使用日志服務的帳号資訊登入,包括包括region,project ,accessid, accesskey。

登入完成後,首次使用dashboard要求配置:

日志資訊。包括region,project ,accessid, accesskey,logstore。比登入資訊多了一個logstore。

日志内容字段映射,docker鏡像為使用一些預設的名稱來描述通路日志的一些字段,如果您在接入日志服務時使用不同的字段名稱,請在這裡做字段映射,保證您的字段的含義能夠被分析程式識别。例如latency字段,假如您接入日志服務時配置該字段的名稱為request_time,那麼需要在這裡填寫request_time。一段日志樣例:

背景處理key

字段樣例

ip

192.168.1.101

method

get

path

/fonts/fontawesome-webfont.woff?v=4.2.0

latency

0.021

request_length

1207

status

304

response_length

referer

<a href="https://sls.console.aliyun.com/css/lib.css">https://sls.console.aliyun.com/css/lib.css</a>

user_agent

mozilla/5.0 (macintosh; intel mac os x 10_11_3) applewebkit/537.36 (khtml, like gecko) chrome/49.0.2623.87 safari/537.36

鏡像計算結果的資料儲存在鏡像的mysql中,如果您釋放您的容器,那麼曆史計算結果會丢失,為了保證所有的曆史結果,請您使用自己的mysql:

建立一個mysql使用者,允許這個使用者從docker中通路這個mysql

上述使用者名和密碼根據自己的需求自定義

修改/etc/mysql/my.conf ,注釋掉bind-address 0.0.0.0這一行

重新開機mysql

點選dashboard頁面上方的『計算結果臨時儲存在docker容器中,若需永久儲存,請更改資料庫』,進入配置mysql。填寫mysql的位址和賬戶資訊,點選【遷移】。