5.22成都workshop:4. 游戏日志采集与分析

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 小吴负责公司的DevOps 以及 数据团队:在服务器和用户数上升后,开发花了非常多的时间在服务器查日志问题上。在支持移动入口、网页、推广渠道后,日志的来源也变得越来越多,加剧了他的困扰。除此之外,运营团队、BI团队、运维团队等对日志提出各自需求。

场景简介

小吴负责公司的DevOps 以及 数据团队:在服务器和用户数上升后,开发花了非常多的时间在服务器查日志问题上。在支持移动入口、网页、推广渠道后,日志的来源也变得越来越多,加剧了他的困扰。除此之外,运营团队、BI团队、运维团队等对日志提出各自需求。

因此小吴需要一套快捷灵活的日志系统,来解决游戏开发中的这些需求。

实验概述(实验第四环节)

  1. 日志数据如何上云:ECS上日志采集
  2. 常用日志处理的几种模式

    1. 索引与查询
    2. 实时计算:演示云监控 (可选)
    3. 离线存储:延时OSS 存储与计算(可选)

具体步骤

准备步骤(可跳过)

  1. 实验环境已经默认安装日志收集客户端(Logtail),如需要手动配置实验环境,请参考环境准备

步骤1. 日志采集步骤

  1. 登陆日志服务控制台,开始创建配置
  2. 在“华东2区域”创建项目Project/Logstore

    • project: workshop-game(注意:project名称需要全局唯一,例如workshop-test-123)
    • logstore:gamelog

      
      ![image](https://yqfile.alicdn.com/e1b77b9ba26f340dd742f8e0fbbed969ed9887a4.png)
      
  3. 创建日志收集配置文件

    1. 配置名称:gameserver
    2. 日志路径:目录 /root/demo 文件 game.log
    3. 模式:选择分隔符模式
  4. 将要ECS中的game.log获取一行,并放入日志样例中

    2017-05-16 09:20:05,123456,testuser,10499,24200,buy,item:123456,77,66,2500043,200,4G,Android 7.8.1
  5. 分隔符:选择自定义,使用","作为分隔符
  6. 为字段增加属性

    Key value
    time 2017-05-16 09:20:05
    user-id 123456
    username testuser
    pos-x 10499
    pos-y 24200
    action buy
    action-param {"item":“1234567”}
    blood 77
    magic 66
    money 2500043
    status 200
    network 4G
    device Android 7.8.1
  7. 创建机器分组,将配置文件应用带机器分组后,日志就会自动开始采集

    1. 机器组名称:gameserver
    2. 在IP地址中填写ECS内网IP地址(在我们的例子中是“10.174.149.160”),可以通过ECS控制台进行查看,其中的内网IP

      ![image](https://yqfile.alicdn.com/79eded3d6f7b46496aab826afdd2985140d3a59d.png)
      
    3. 创建完成后,将配置勾选,并应用到机器组
    4. 可以通过左边菜单:LogHub-实时采集 / Logtail机器组 / 查看状态,查看机器上Logtail 是否安装完成

      
      ![image](https://yqfile.alicdn.com/92eee8789c1d8ee23f78853da131c68b2f70de08.png)
      
    5. 配置应用后一分钟内,日志就会被采集,通过监控或预览可以进行查看

      ![image](https://yqfile.alicdn.com/4dd836976e148e52d8e38fdc9a0d4b426b5a2df7.png)
      
    6. 通过预览,我们可以看到日志已被实时收集了

      ![image](https://yqfile.alicdn.com/6be15a3cb9c8c72535273c473ac85ca7e261eecf.png)
      

步骤2. 日志索引与查询

  1. 日志实时收集后,我们可以通过计算程序对日志进行流计算,例如监控等。除此之外,我们可以对日志建立索引,进行实时日志查询与分析。
  2. 在左侧菜单点击日志库,查询按钮进入日志查询页面
  3. 日志需要通过索引(类似搜索引擎)后,就能进行查询。我们对于不同Key建立不同索引

image

  1. 在输入框中输入"username:testuser "获得用户名为testuser操作日志
  2. 可以加入更多条件,例如"username:testuser and action:sell" 查看满足这两个条件的日志
  3. 通过点击上下文浏览,可以查看某条日志在原始日志文件中的上下文(一般用来进行错误调查)

image

  1. 我们还可以在搜索框中做一些查询统计功能,例如线上有一个需求:我们需要对线上玩得比较多,但血量比较少,金钱也不多但经常玩的用户提供一些代金券,可以提交如下query

    blood<400  and money<3000 | select username, count(*) as c group by username having count(*) > 100 order by c desc

在控制台获得如下结果:
image

  1. 更多查询SQL分析功能等你体验

步骤3. 演示通过云监控配置视图和报表功能(可选)

  1. 进入云监控下的日志监控页面
  2. 点击授权云监控读取日志服务权限
  3. 创建一个PV监控项,例如聚合每分钟的数据计数
    image
  4. 生成图表

步骤4. 演示将日志数据存储OSS/MaxCompute (可选)

  1. 具体参见日志投递文档

其他

  1. 日志服务主页 https://www.aliyun.com/product/sls/
  2. 欢迎加入日志服务钉钉群

image

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1月前
|
存储 分布式计算 监控
【Flume】Flume 监听日志文件案例分析
【4月更文挑战第4天】【Flume】Flume 监听日志文件案例分析
|
3月前
|
机器学习/深度学习 数据采集 自然语言处理
【2023 - 探索】博0到博1,游戏新地图的探索日志
【2023 - 探索】博0到博1,游戏新地图的探索日志
35 0
|
3月前
|
Java 计算机视觉 Python
我的自描外挂制作日志——FPS类游戏的自瞄【优化改进1】
我的自描外挂制作日志——FPS类游戏的自瞄【优化改进1】
43 1
|
3月前
|
人工智能 算法 计算机视觉
我的自描外挂制作日志——FPS类游戏的自瞄【构思准备】
我的自描外挂制作日志——FPS类游戏的自瞄【构思准备】
47 0
|
11天前
|
存储 监控 关系型数据库
PHP编写的电脑监控软件:用户登录日志记录与分析
使用PHP编写简单但功能强大的电脑监控软件,记录用户登录日志并进行分析。代码示例展示了如何获取并存储用户IP地址和登录时间到数据库,然后进行登录数据的分析,如计算登录频率和常见登录时间。此外,还介绍了如何通过定时任务自动将监控数据提交到网站,以便实时监控用户活动,提升系统安全性和稳定性。
34 0
|
13天前
|
数据可视化
R语言两阶段最小⼆乘法2SLS回归、工具变量法分析股息收益、股权溢价和surfaces曲面图可视化
R语言两阶段最小⼆乘法2SLS回归、工具变量法分析股息收益、股权溢价和surfaces曲面图可视化
|
18天前
|
机器学习/深度学习 前端开发 数据挖掘
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断(下)
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
223 11
|
23天前
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断2
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
|
24天前
|
机器学习/深度学习 前端开发 数据挖掘
R语言计量经济学:工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
R语言计量经济学:工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
|
1月前
|
SQL 存储 监控
日志问题精要:分析与总结
该文档讲述了应用系统日志记录的重要性和规则。主要目的是记录操作轨迹、监控系统状态和回溯故障。日志记录点包括系统入口、调用其他模块、调用结束、出口和出错时。内容应遵循UTF-8编码,避免敏感信息,按INFO级别记录,及时、完整且安全。日志输出要控制频率和长度,不影响系统性能,并按策略备份和清理。日志等级分为DEBUG、INFO、WARN、ERROR和FATAL。日志文件应有明确目录结构,大小有限制,并定期清理。注意事项包括输出异常堆栈、避免打印对象实例的hashCode、选择合适的日志框架和格式,并支持动态修改日志级别。还要实现链路追踪,确保在多线程环境中正确记录日志。
26 0

相关产品

  • 日志服务