閱讀732 返回首頁    go 阿裏雲 go 技術社區[雲棲]


處理-使用訪問日誌統計__最佳實踐_日誌服務-阿裏雲

使用視頻

必要條件

  • Nginx/Apache訪問日誌必須接入到阿裏雲日誌服務

  • 開通日誌服務

  • 開通容器服務

  • 有阿裏雲AccessKey可以訪問日誌服務(可以是子帳號)

子帳號權限

如果您使用子帳號授權,請參考下邊的權限配置,將${your_project}替換成你的Project名稱,${your_logstore}替換成您的訪問日誌所在的Logstore。

  1. {
  2. "Version": "1",
  3. "Statement": [
  4. {
  5. "Action": [
  6. "log:Get*",
  7. "log:List*"
  8. ],
  9. "Resource": "acs:log:*:*:project/${your_project}/logstore/${your_logstore}",
  10. "Effect": "Allow"
  11. },
  12. {
  13. "Action": [
  14. "log:CreateConsumerGroup",
  15. "log:ListConsumerGroup",
  16. "log:ConsumerGroupUpdateCheckPoint",
  17. "log:ConsumerGroupHeartBeat",
  18. "log:GetConsumerGroupCheckPoint"
  19. ],
  20. "Resource": "acs:log:*:*:project/${your_project}/logstore/${your_logstore}/consumergroup/*",
  21. "Effect": "Allow"
  22. }
  23. ]
  24. }

非必要條件

  • 自建mysql或者RDS(默認使用docker鏡像內的mysql)

實施步驟

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

  1. 訪問日誌接入到阿裏雲日誌服務,具體接入方法請參考阿裏雲日誌服務文檔。

  2. 開通容器服務

  3. 在容器服務中創建集群,操作係統選擇ubuntu。

  4. 在容器服務中創建應用

    1. 應用名稱輸入dashboard(或自定義)。
    2. 部署集群選擇剛剛創建的集群。
    3. 點擊“使用鏡像創建”。
    4. 點擊選擇鏡像,選擇阿裏雲鏡像,access_log_stat_dashboard鏡像。選中出現的aliyunlog/access_log_stat_dashboard鏡像。
    5. 在【web路由規則】中,容器端口輸入80,域名輸入dashboard,點擊“添加”。
    6. 點擊確定。
  5. 在【服務】中,找到剛剛創建的服務(dashboard,或自定義服務名稱),點擊服務名稱,在出現的基本信息中找到訪問端點,例如訪問端點。

  6. 在瀏覽器中打開上述URL,開始使用。
  7. 首次打開dashboard,需要使用日誌服務的帳號信息登錄,包括包括region,project ,AccessId, AccessKey。
  8. 登錄完成後,首次使用dashboard要求配置:
    1. 日誌信息。包括region,project ,AccessId, AccessKey,LogStore。比登錄信息多了一個LogStore。
    2. 日誌內容字段映射,docker鏡像為使用一些默認的名稱來描述訪問日誌的一些字段,如果您在接入日誌服務時使用不同的字段名稱,請在這裏做字段映射,保證您的字段的含義能夠被分析程序識別。例如latency字段,假如您接入日誌服務時配置該字段的名稱為request_time,那麼需要在這裏填寫request_time。一段日誌樣例:
  1. 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

    1. grant all privileges on *.* to loguser@'%' identified by '123456789';
    2. flush privileges;
  • 上述用戶名和密碼根據自己的需求自定義

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

    1. sudo service mysql restart
  • 點擊dashboard頁麵上方的『計算結果臨時保存在docker容器中,若需永久保存,請更改數據庫』,進入配置mysql。填寫mysql的地址和賬戶信息,點擊【遷移】。

使用ECS啟動docker

上文講述了如何使用容器服務來啟動Docker,對於購買了ECS的用戶而言,可以使用自己的虛擬機來啟動Docker。在ECS上啟動鏡像,請執行下邊的命令:

  1. pull registry.aliyuncs.com/aliyunlog/access_log_stat_dashboard
  2. docker run --dns 223.5.5.5 -p 80:80 -d registry.aliyuncs.com/aliyunlog/access_log_stat_dashboard

最後更新:2016-11-23 17:16:06

  上一篇:go 處理-訪問日誌統計分析__最佳實踐_日誌服務-阿裏雲
  下一篇:go 處理-通過ConsumerLib實現不丟、保序、去重__最佳實踐_日誌服務-阿裏雲