用户使用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 loguser@'%' identified by '123456789';
flush privileges;
重启mysql
sudo service mysql restart