又拍云如何在国内业界率先做到 CDN 全网实时、精准化监控?就这个问题,又拍云 CTO 黄慧攀于 8 月 25 日在“云头条”做了专题分享。内容涉及监控在云服务中的重要性,以及实现监控性能提升的技术实战方法。
首先,从整体上讲,又拍云的云服务有三块:
- CDN
- 云存储
- 云处理
每个云服务的监控侧重点各有不同。
CDN:监控性能和可用性
又拍云的 CDN 用到了听云(基调)和安全宝、DnsPod 等外围的服务监控。zabbix 是最基础的服务器监控,它的不足之处在于:
- 实时性差;
- 无法方便的对业务进行监控(需要做大量对接工作)。
Agent 是 又拍云自己写的 shell 脚本,负责从服务器自身内部发现问题,并告警。如:本机的各个业务系统是否在正确运行,和当前服务器连接关键机房的网络质量等。缺点在于如果自身网络出现问题就无法告警,但能根据自己的业务特点,做多种健康检查,比较灵活。
数据中心:自主研发狗眼监控系统
注:标黑色线的,表示该项监控的主要用途
数据中心有两块大业务:
- 云存储
- 云处理
去年又拍云用 zabbix 来负责服务器硬件资源的监控,但无法满足需求,所以我们又拍云自己开发了一个系统,命名为“狗眼系统”,来专门做服务监控。它可以监控到又拍云某项具体服务:
- 吞吐量
- 平均处理耗时
更重要的是,它能做到秒级告警,又拍云数据中心每个子业务都做了狗眼的接入,以保障整个平台的稳定性。
举个例子,某个客户上传一个图片,并要求做缩略图存储。这会牵扯到几个业务系统:
- API;
- 云处理;
- 云存储。
如果上传失败,或者上传很慢,以前又拍云通过 zabbix 观察哪台服务器压力大,非常麻烦,在集群服务的情况下单台服务器根本不反映集群的服务状态。
而在开发出狗眼监控后,又拍云能准确的判断到哪个子业务的负载有问题,影响到了整个业务流程,比如:云处理环节出问题了,影响到整个文件上传速度。 狗眼会根据历史情况,判定当前这秒的数值是否偏差,异常,并做出告警。又拍云的工作人员马上检查云处理这个服务集群的状况,了解是否因为当前的处理量过大或者网络读写等情况导致。
狗眼系统从 2013 年 12 月开始开发,耗时 1 周。用了将近半年时间连接 又拍云服务。“狗眼”有 20w 个 UDP 包的处理能力,有了狗眼系统,又拍云从原来的盲人摸象,进化为具有敏锐的“嗅觉”。能快速准确的定位为问题。
日常监控:实时日志分析系统
另外,又拍云还有实时日志分析系统。有些具体的错误信息需要在日志里面体现出来。日志分析系统无法做全量,一般 200 OK 正常的请求日志没必要记录和处理的,又拍云只处理 code & 400 的记录。
有这么多个渠道给出告警信息,还得避免狼来了的情况发生,对告警进行去重、筛选非常重要,黄慧攀将监控分了主要的 2 种角色,互相配合一起来做告警,方便维护。
这些监控最有用的是历史数据,在上面可以分析出异常,如又拍云针对全国机房的链路情况,每 10 分钟采一次样,采集到的数据加以处理总结出一些规律,如有些机房在晚高峰的时候会总出口拥堵而导致性能下降。更细致的观察需要根据节点的服务日志记录分析,如平均下载速度,下载速度大于 10mbps 的比例,回源慢的影响比例等。
评论