用戶使用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等常見狀態碼。以小時和天爲統計週期,統計每個週期內的狀態碼次數。
瀏覽器分爲多個子指標,分別統計每一個子指標出現的次數。包括
終端類型
瀏覽器類型
操作系統
瀏覽器內核
統計常見的爬蟲訪問量,常見爬蟲包括百度、Google、360、今日頭條。
根據referer統計的來源域名,統計來源最高的20個域名。
以小時爲單位,根據request_length字段和response_length字段,統計訪問的入網流量和出網流量的大小。
如果您使用子帳號授權,請參考下邊的權限配置,將${your_project}替換成你的Project名稱,${your_logstore}替換成您的訪問日誌所在的Logstore。
{ "Version": "1", "Statement": [ { "Action": [ "log:Get*", "log:List*" ], "Resource": "acs:log:*:*:project/${your_project}/logstore/${your_logstore}", "Effect": "Allow" }, { "Action": [ "log:CreateConsumerGroup", "log:ListConsumerGroup", "log:ConsumerGroupUpdateCheckPoint", "log:ConsumerGroupHeartBeat", "log:GetConsumerGroupCheckPoint" ], "Resource": "acs:log:*:*:project/${your_project}/logstore/${your_logstore}/consumergroup/*", "Effect": "Allow" } ] }
實施步驟以ubuntu系統爲例,其他系統請以本文檔做參考
通過容器服務:
在容器服務中創建應用。
通過ECS安裝鏡像:
docker pull registry.aliyuncs.com/aliyunlog/access_log_stat_dashboard docker run --dns 223.5.5.5 -p 80:80 -d registry.aliyuncs.com/aliyunlog/access_log_stat_dashboardaccess_log_stat_dashboard
登錄完成後,首次使用dashboard要求配置:
192.168.1.101 - - [17/Mar/2016:10:28:30 +0800] "GET /fonts/fontawesome-webfont.woff?v=4.2.0 HTTP/1.1" 0.021 1207 304 0 "https://sls.console.aliyun.com/css/lib.css" "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"
後臺處理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 | 0 |
referer | https://sls.console.aliyun.com/css/lib.css |
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
grant all privileges on *.* to [email protected]'%' identified by '123456789'; flush privileges;
重啓mysql
sudo service mysql restart