DevOps专题 | 大型企业级监控系统设计
10月30日,全球权威数据调研机构IDC正式发布《IDCMarketScape: 中国DevOps云市场2019,厂商评估》报告。京东云凭借丰富的场景和实践能力,以及高质量的服务交付和平台稳定性,取得优异出成绩,跻身“Major Players”(核心厂商)位置。
京东云DevOps能力起源于自身的业务实践,针对京东集团的复杂业务场景打造并经受住多次618、11.11电商大促的严峻考验,保证了高效高质的交付和对变化的灵活应对。能够支持复杂场景的自动化运维需求、实现工具链产品与平台化产品结合,帮助客户根据不同的需求灵活定制方案。
监控目标
丰富的数据采集能力,能对监控对象能进行深度观测。
灵活的数据加工能力,比如把相关的数据汇聚起来,得到我们需要关注的核心数据。
异常检测能力,从最简单的阈值判断到各种异常检测算法,教会机器看懂是不是出现异常了。其本质上也是一种对数据的加工能力。
收到异常之后,可以通过dashbord、趋势图进行问题定位,即数据的展示能力。
如果做的更加深入,可以有根因推荐平台,把最近的变更、关联的告警做一些推荐,加速定位的过程。
问题定位完成之后,期望把运维处理的经验沉淀下来,这样就形成了预案平台,便于更加快速的止损。
当然,最重要的,一个好的监控系统需要具备高可靠性,本身监控系统就是为了发现异常,监控自身程序挂了,没有人知晓肯定是不行的,这就引申出来了,监控系统的监控怎么做的问题,可以当做一个发散的问题,大家考虑一下。
监控标准
首先是基础监控,这一层主要解决机器、网络层面的问题,包括我们常见的cpu、内存,机器死机等问题
然后是存活性监控,解决程序部署到机器上后,是否存活的问题,比如进程退出,端口发送一个ping过去,没有返回pang
再上一层,则是性能监控,重点关注Google提出的四大黄金指标pv、平响,错误码和容量等,解决分布式程序的定界问题(比如通过访问MySQL的时间飙升知道是下游MySQL的问题)
最上层是业务监控,模拟用户进行访问,解决服务在用户侧的表现是什么
有了标准,设计的监控系统按照标准来落地,可以给出一些数据化的运营指标,推动监控的完善。
典型监控系统设计
左边这条进行了数据加工(聚合计算),比如把10台nginx的pv累加起来;而且可以按照各种维度(标签)累加,常见的需求包括监控项自身的标签(比如pv的状态码为5xx的聚合);也包括监控对象的标签(比如某个机房的pv累加起来),监控系统需要具备这种灵活的数据加工能力。
中间的一路进行了数据存储,便于趋势图、dashbord能够查看到;有很多问题,还是需要靠人工经验去做判断。这里面会要求存储具备各种查询的能力,比如sum、max、min、avg、topN、分位值等。
右边一路则是报警通路,进行异常检测,教会机器怎么看图,辨别出哪些指标有异常;一般是先做运算,比如发现某台机器的内存低于阈值了,然后会有一个模块去做收敛以及一些干预(比如屏蔽/升级等),最后确定要通知人员处理了,对接不同的告警方式(邮件、短信、微信)。
当然还有一些离线挖掘,根因推荐,这些数据处理最终的目标还是能够让机器识别更多的异常、通过经验/算法,找到‘根因’
IDC中国企业软件市场高级分析师王楠认为:“京东云DevOps能力源于自身业务实践,是京东技术能力输出的重要组成部分,尽管推出相对较晚,但发展速度快、成熟度高,工具链和平台功能已基本涵盖DevOps的主要流程阶段。同时,京东云DevOps平台还与公有云平台深度集成,不仅极大提升了服务交付效率和稳定性,还能高效助力用户的自动研发和运维。”
点击【阅读原文】可了解更多京东云DevOps产品内容。