小吴负责公司的DevOps 以及 数据团队:在服务器和用户数上升后,开发花了非常多的时间在服务器查日志问题上。在支持移动入口、网页、推广渠道后,日志的来源也变得越来越多,加剧了他的困扰。除此之外,运营团队、BI团队、运维团队等对日志提出各自需求。
因此小吴需要一套快捷灵活的日志系统,来解决游戏开发中的这些需求。
常用日志处理的几种模式
索引与查询实时计算:演示云监控 (可选)离线存储:延时OSS 存储与计算(可选)在“华东2区域”创建项目Project/Logstore
project: workshop-game(注意:project名称需要全局唯一,例如workshop-test-123)logstore:gamelog
创建日志收集配置文件
配置名称:gameserver日志路径:目录 /root/demo 文件 game.log模式:选择分隔符模式将要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 分隔符:选择自定义,使用","作为分隔符为字段增加属性
Keyvaluetime2017-05-16 09:20:05user-id123456usernametestuserpos-x10499pos-y24200actionbuyaction-param{"item":“1234567”}blood77magic66money2500043status200network4GdeviceAndroid 7.8.1创建机器分组,将配置文件应用带机器分组后,日志就会自动开始采集
机器组名称:gameserver在IP地址中填写ECS内网IP地址(在我们的例子中是“10.174.149.160”),可以通过ECS控制台进行查看,其中的内网IP
 创建完成后,将配置勾选,并应用到机器组可以通过左边菜单:LogHub-实时采集 / Logtail机器组 / 查看状态,查看机器上Logtail 是否安装完成
配置应用后一分钟内,日志就会被采集,通过监控或预览可以进行查看
通过预览,我们可以看到日志已被实时收集了
我们还可以在搜索框中做一些查询统计功能,例如线上有一个需求:我们需要对线上玩得比较多,但血量比较少,金钱也不多但经常玩的用户提供一些代金券,可以提交如下query
blood<400 and money<3000 | select username, count(*) as c group by username having count(*) > 100 order by c desc在控制台获得如下结果:
更多查询与SQL分析功能等你体验