要统计 top 10 的动态请求,需要先去又拍云官网下载对应日期的全部日志,然后进行分析统计,具体操作步骤如下,其他需要也是类似的方法。
下载日志
后台点击工具箱–日志管理,切换到日志下载,选择对应的服务名和域名,然后选择 CDN 日志,然后选择日期,又拍云的日志是每小时一次,如果要统计比如 8月27号的日志,则选择8月27号,会在列表中看到当天所有的日志内容,格式是 gz 结尾
我们可以看下又怕云的日志格式相关解释
日志格式说明
$remote_addr - $remote_user [$time_local] "$request_method $scheme://$http_host$uri$querystring $server_protocol" $status $body_bytes_sent "$http_referer" "$http_user_agent" $content_type $request_content_length $cache_hit $source_code $is_dynamic $cache_control $request_time $edge_server_ip
其中is_dynamic自动对应的值是 Dynamic
这个值表示是动态请求,在又拍云 age 值小于60秒的请求都算是动态请求。
因为都是 gz 文件,我们可以用 gzcat 查看文件内容然后过滤包含有这个字段的行重定向到文本文件中去进一步分析
gzcat *.gz | grep Dynamic > lentop1.log
然后执行如下命令把日志文件中的 url 提取出来进行统计排序
➜ Downloads cat lentop1.log|awk '{print $7}' |sort| uniq -c | sort -r
262 http://cdn.app.lentop1.top/upload/201708/15/app/20170815141007281.apk
145 http://cdn.app.lentop1.top/
100 http://cdn.app.lentop1.top/upload/201708/16/app/20170816092711747.apk
100 http://cdn.app.lentop1.top/upload/201708/14/app/20170814180201495.apk
77 http://cdn.app.lentop1.top/upload/201708/15/app/20170815170549783.apk&crazycache=1
34 http://cdn.app.lentop1.top/upload/201708/4/app/20170804115852117.apk
24 http://cdn.app.lentop1.top/upload/201708/11/app/20170811174923100.apk
14 http://cdn.app.lentop1.top/upload/201708/21/app/20170821134911165.apk
10 http://cdn.app.lentop1.top/upload/201708/11/app/20170811171347114.apk
8 http://cdn.app.lentop1.top/upload/201708/10/app/20170810115252167.apk
7 http://cdn.app.lentop1.top/upload/201708/10/app/20170810165546633.apk
5 http://cdn.app.lentop1.top/upload/201708/11/app/20170811141526830.apk
3 http://cdn.app.lentop1.top/upload/201708/22/app/20170822165039485.apk
1 http://cdn.app.lentop1.top/upload/201708/16/app/20170816170517229.apk
1 http://cdn.app.lentop1.top/upload/201708/10/app/20170810163123092.apk
1 http://cdn.app.lentop1.top/upload/201708/10/app/20170810161053871.apk
1 http://cdn.app.lentop1.top/upload/201708/10/app/20170810113054109.apk