开篇词
写这个玩意儿,主要是看了掘金小册之后,想到我们的监控系统是我从 0 开始做起来的,所以想着也可以做个小册玩一玩儿
整个体系中的组件都是开源产品,白嫖
但是我觉得看完内容后,你肯定完全可以自己搭建开发一套监控系统,因为内容中完全是我们现在线上正在使用的
我目前在游戏公司工作,所以整体的设计是面向游戏公司的监控需求,可能会不太满足你的需求
如果有啥问题,欢迎联系我,一起交流学习,微信号: kongzz45
游戏运维监控
作为游戏运维人员,你可能会听到如下的一些各方表达的声音,当然肯定不止如下这些。
- 玩家登陆不了游戏了
- 玩家充值金额不到账
- 玩家游戏体验说很卡,进入不了战斗
- 游戏前端页面的资源加载不到,白屏
- 我们需要知道当前玩家的舆情
- 我们需要知道当前玩家在线跟昨天同时间对比情况
- 怎么机器宕机了啊
- 我们需要知道游戏进程资源使用情况
当我们在聊这些问题的时候,我们在聊什么?
作为一个游戏运维人员,面对运维工作,就是要保障游戏运行环境的稳定可控。这里的游戏运行环境,包括程序代码的运行环境(机器,容器等等),具体的业务逻辑依赖的资源(域名,CDN 资源,数据库等等)。
当某个节点出现问题的时候,运维人员能否做到快速定位并解决,这可能就需要用到监控了,我们需要监控系统来帮助我们对游戏的运行环境进行不间断的监控,以至出现或者将要出现问题的时候,运维人员能够提前知道并解决问题。
监控什么
按照资源划分
- 使用的机器资源或者容器资源
- 使用的数据库资源
- 使用的域名(证书)资源
- 使用的 CDN 资源
- 使用的网络资源(带宽,连通性等)
- 等等
基础监控
- 主机存活,重启
- CPU,内存使用率
- 磁盘 IO,磁盘使用率,磁盘 inode,磁盘只读
- 网络 IO,TCP 连接数
- 僵尸进程
- 等等
业务监控
- 进程存活,端口可连通
- 登录,注册,在线,充值,聊天
- 业务错误日志,业务埋点日志
- 游戏版本,渠道,广告投放
- 客户端性能(埋点)
- 业务自定义场景
- 等等
怎么监控
- 数据采集
- 定义告警规则
- 定义告警级别
- 定义告警接收人(游戏运维,研发,等等)
- 数据和规则进行匹配计算,根据级别生成告警项
- 将哪些告警项发给哪些告警接收人
- 运维人员根据告警项进行问题处理
- 将问题处理过程进行复盘并归类总结
- 迭代优化告警项?优化监控系统?优化业务?