开篇词

  • 写这个玩意儿,主要是看了掘金小册之后,想到我们的监控系统是我从 0 开始做起来的,所以想着也可以做个小册玩一玩儿

  • 整个体系中的组件都是开源产品,白嫖

  • 但是我觉得看完内容后,你肯定完全可以自己搭建开发一套监控系统,因为内容中完全是我们现在线上正在使用的

  • 我目前在游戏公司工作,所以整体的设计是面向游戏公司的监控需求,可能会不太满足你的需求

  • 如果有啥问题,欢迎联系我,一起交流学习,微信号: kongzz45

游戏运维监控

作为游戏运维人员,你可能会听到如下的一些各方表达的声音,当然肯定不止如下这些。

  • 玩家登陆不了游戏了
  • 玩家充值金额不到账
  • 玩家游戏体验说很卡,进入不了战斗
  • 游戏前端页面的资源加载不到,白屏
  • 我们需要知道当前玩家的舆情
  • 我们需要知道当前玩家在线跟昨天同时间对比情况
  • 怎么机器宕机了啊
  • 我们需要知道游戏进程资源使用情况

当我们在聊这些问题的时候,我们在聊什么?

作为一个游戏运维人员,面对运维工作,就是要保障游戏运行环境的稳定可控。这里的游戏运行环境,包括程序代码的运行环境(机器,容器等等),具体的业务逻辑依赖的资源(域名,CDN 资源,数据库等等)。

当某个节点出现问题的时候,运维人员能否做到快速定位并解决,这可能就需要用到监控了,我们需要监控系统来帮助我们对游戏的运行环境进行不间断的监控,以至出现或者将要出现问题的时候,运维人员能够提前知道并解决问题。

监控什么

按照资源划分

  • 使用的机器资源或者容器资源
  • 使用的数据库资源
  • 使用的域名(证书)资源
  • 使用的 CDN 资源
  • 使用的网络资源(带宽,连通性等)
  • 等等

基础监控

  • 主机存活,重启
  • CPU,内存使用率
  • 磁盘 IO,磁盘使用率,磁盘 inode,磁盘只读
  • 网络 IO,TCP 连接数
  • 僵尸进程
  • 等等

业务监控

  • 进程存活,端口可连通
  • 登录,注册,在线,充值,聊天
  • 业务错误日志,业务埋点日志
  • 游戏版本,渠道,广告投放
  • 客户端性能(埋点)
  • 业务自定义场景
  • 等等

怎么监控

  1. 数据采集
  2. 定义告警规则
  3. 定义告警级别
  4. 定义告警接收人(游戏运维,研发,等等)
  5. 数据和规则进行匹配计算,根据级别生成告警项
  6. 将哪些告警项发给哪些告警接收人
  7. 运维人员根据告警项进行问题处理
  8. 将问题处理过程进行复盘并归类总结
  9. 迭代优化告警项?优化监控系统?优化业务?
上次更新:
贡献者: kongzZ