这个可能你不知道!基于NodeJS的高性能分布式游戏日志系统

本文分享了作者在构建统一游戏日志系统的过程中的经验,包括使用FEN架构(Fluentd、Elasticsearch和NodeJS)实现日志采集、转发、分析和存储。系统通过Fluentd收集日志,NodeJS作为转发器和分析器,Elasticsearch作为存储仓库。文章详细讨论了各个组件的选择和注意事项,以及如何应对日志分析的挑战。
摘要由CSDN通过智能技术生成

大纲:

  1. 前言
  2. 日志系统架构是怎样的
  3. 游戏分析有什么内容
  4. 为什么要自己架一个系统
  5. FEN架构 架构图 Fluentd ElasticSearch NodeJS pusher logger analyser 用户界面
  6. 总结

前言

最近我司需要做一个统一的游戏日志系统,要求有一定的通用性,能应对公司所有的游戏业务。接下来分享一下这次日志系统的项目经验。

日志系统架构是怎样的

目前流行的日志系统为ELK,由Beats、Logstash、Elasticsearch、Kibana等组件共同实现,但万变不离其宗,一个基本的日志系统架构类似如下:
在这里插入图片描述

游戏分析有什么内容

游戏分析,与其它服务系统不同的是,游戏内的系统可能是天马行空的,数据类型是多样的,甚至频繁变化的。我们要在变化中总结到不变的内容,例如系统经济产出,玩家物品消耗,商店购买等进行分析。所以这次的游戏日志系统要满足以下需求:

记录游戏日志,并随时检索日志;

分析玩家行为:玩家留存相关,玩家物品消耗,商店消耗等有一定复杂度的分析;
能建立一个统一的日志系统:一次性满足未来游戏运营多样性。
为什么要自己架一个系统
虽然ELK在安装配置方面不算困难,插件众多,例如Filebeat,读log文件,过滤格式,转发,但谁来生产这些log文件,没有提及。实际上,业务具有多样性,只要有日志文件的地方,它就可以用。例如多数会使用Nginx进行日志收集。我们也需要考虑到日志生产者的问题,责权分离,需要单独一台机子进行日志采集。

游戏是一种技术与艺术结合的产品,数据庞杂,形态各异,光日志埋点也花不少功夫复杂,但不能因此放弃治疗。好的游戏日志,还可以帮我们还原玩家玩家画像。游戏更新周期短,数据变化大,需要提供更实时参照报表,为非技术人员更好友的查询界面,才能更好的服务于游戏数据分析。ELK 在这方面,基本解决了采集和储存的问题,但实现分析方面还不能满足我们的需求。

经过一翻思索,我们可以用现有工具,粘合多个套件,所以,我们有了以下思路:

  • 日志采集器:

利用Fluented作为日志文件采集器,生产者通过内网HTTP发送到采集器上,那每个生产者同一内网只要部署一个采集器即可,如果量特别大,可以多个,游戏的功能埋点可以统一;

  • 转发器:

利用NodeJS进行 HTTP 转发即可,前提是能按顺序和分段读取日志文件ÿ

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值