使用者使用ecs搭建網站,網站的通路日志(nginx,apache通路日志)收集到阿裡雲日志服務中供查詢。為了從通路日志中挖掘出更多價值,日志服務提供了一個docker鏡像,用于實時統計和展示網站通路的一系列名額,例如pv,uv,延時,地理,狀态碼,爬蟲,網絡流量等名額。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuUmNmR2Y5AjZhRDZhFjY4QWZwUGZ0MjZ4AjM0QjYwEWZwEDM0QGOzM2LcNXZslmZxl3Lc12bj5ycj5Wd5lGbh5ycz92Lc9CX6MHc0RHaiojIsJye.png)
分别以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的位址和賬戶資訊,點選【遷移】。