阅读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实现不丢、保序、去重__最佳实践_日志服务-阿里云