您当前的位置:首页 > 新闻 > 科技

京东云监控系统设计及落地之路

时间:2020-05-22 18:01:07  来源:  作者:

监控是运维的生命线,监控系统的目标是通过快速发现问题、定位问题、解决问题来达到缩短异常出现的 MTTR,在这方面,京东云定义了一套统一的监控标准:即监控需要覆盖基础 - 存活 - 性能 - 业务四个层面,从而保证采集数据的全面,进而避免监控遗漏。

谈运维为什么离不开监控?典型监控系统一般是如何设计的?业务驱动的高可用监控系统又有何不同?作为巨头之一的电商平台京东, 其基于京东云的监控系统是否有值得借鉴的地方?本文将解答这些问题。本文整理自 10 月 30 日由京东云开发者社区和英特尔联合举办的在线公开课,京东云工具产品研发部专家架构师颜志杰的在线课程演讲——业务驱动监控系统设计与落地。

1 为什么需要做监控

世上没有百分百可靠的系统,程序、机器、网络都可能在运行中出现问题,进而导致服务异常, 带来金钱及品牌的损失,所以监控目标就是降低损失,通过发现、定位、解决问题,期望缩短异常出现的 MTTR (平均修复时间)。

要达到这个目标,监控对象必须具备可观测性,即通过数据描述是否出现异常,这些数据包括指标监控 Metric、日志 log 和 Trace 数据。

为了实现缩短 MTTR 的目标,监控系统应该具有这些能力:

  1. 数据采集能力,获取可观测的数据
  2. 数据能够方便加工,比如把相关的数据汇聚起来,得到我们需要关注的数据
  3. 对这些关注的数据,做异常检测,及时产生告警
  4. 收到告警后,通过 Dashbord 查图定位,最好有专家推荐,加速定位
  5. 定位问题后,通过预案平台进行快速止损
  6. 整个监控系统需要做到高可用,监控就是为了发现异常,如果由于异常导致自身不可用,肯定是减分的

2 从功能模块来分解监控系统

京东云监控系统设计及落地之路

 

“典型监控系统从功能模块分为采集、计算、存储、告警、算法、业务端等。 

从下往上来看,首先是抽象层,包含 CMDB(配置管理数据库),抽象了我们对监控对象的定义,比如定义了应用、机器、域名、网络等,比如确定监控系统里面机器到底是用 IP 还是 Hostname。采集层包含众多采集手段,包括机器、容器、进程、日志、端口等,可以通过 Agent 数据传输,或者外部探测点定期拉取,也可以用户直接通过 API 推送进行数据采集。

数据采集后,分为三条数据流处理:计算、存储、告警,计算即进行数据加工,如聚合计算把 10 台 Nginx 的 PV 累加起来;数据存储便于 Dashbord 能够查看;报警通路进行异常检测,快速发出报警。上层计算平台基于智能算法对异常或者故障的根因进行分析,进行根因推荐,输出专家辅助定位。最终到达用户层,提供用户常见的监控功能点:监控配置维护、告警处理、预案管理等。

3 从数据的视角来分解监控系统

京东云监控系统设计及落地之路

 

“从数据视角去理解,监控系统就是一个数据处理系统,便于我们简化系统设计以及更好理解监控系统。”

从数据的视角来分解监控系统,同样分为四层,上图尝试用不同颜色、形状的图形去说明采集、计算、存储、告警等模块在数据视角的功能。 打比方说: 数据抽象层,即把监控数据被抽象成是各种形状、各种颜色的模块,数据采集就是标准化过程,把各种形状颜色的数据用统一的方式表示,比如上图用一个云的形状把各种图形框起来;聚合计算就是对同一标签的数据做聚合处理,比如上图按照颜色来聚合,存储流把相同的形状颜色顺序摆好,告警则是挑选出有红色框的数据(上图表示异常数据点)。所以,无论是采集、聚合、存储、告警还是查看 Dashbord,本质上都是对数据的一些处理、变换操作。

举个例子,用户 Dashbord 筛选耗时 >2s 的曲线、和告警模块筛选出 >2s 告警,对应数据视角是一致的,都是做一些数据计算过滤等。所以,如果我们把数据的通用处理,过滤转换、运算表示为统一通用能力,用 F(x) 表示,那么在设计监控的时候,把这些通用能力封装成 .lib 可以应用到各个模块中,不但能够实现很强的能力复用,还能简化系统设计。站在数据的视角上,将监控系统理解为一个数据处理系统,会有助于更好的理解监控系统。

那么从数据视角分析监控系统,还需要优先考虑以下这几个部分:

1、数据模型先行,不同模型代表着不同的数据描述及处理能力,进而会对监控产品的形态产生影响

以一个 Http 的 2xx 的请求 PV 为例,用单值模型描述,即通过“监控项名字 + 取值”来描述,这种体验就跟如下左图一样:去地摊买东西,不同数据平铺开来,关联比较弱;用多维度单值模型,引入了标签的概念,比如这里面的 code:200,通过“名字 + 标签”组合去描述,如中间图:去超市货架买东西,同种商品公用一个饮料标签,如上层是可乐标签,通过标签可以快速找到相关性的众多商品;而多维度多值模型,如右图:一次性就能够把你想吃的东西都拿到,同样还能得到一些有趣的数据,如商家可以知道喜欢吃番茄口味薯片的人对铜锣烧的需求爱好是什么。类比到监控领域,PV 和耗时放到一块,然后一块进行存储,这样我们可以方便获取到耗时大于两秒的那些 PV 是多少,因为他们是存储在一起的。所以先清楚监控系统的数据模型,对于理解监控系统很重要。

京东云监控系统设计及落地之路

 

2、监控采集就是数据标准化的过程

如果是用 Agent 数据传输的方式,首先要考虑就是 Agent 稳定性,也就是资源消耗的问题。从 CPU、内存、磁盘等都需要做一些限制,保证 Agent 有确定性最大资源消耗。

3、监控数据存储具有读写正交、meta 的灵活查询需求,基本上会采用列式存储 + 倒排 +Gorilla 的方案选型

为了满足读写正交要求,业界一般采用列式存储作为主存,如 Hbase、Cassandra,满足监控查询按照标签做灵活检索,一般采用倒排存储 meta 数据,这样可以实现类似百度通过标签筛选指标,监控数据有最新值查询的需求,所以采用基于 Gorilla 的缓存。所以京东云的 TSDB 选型方案为 Es+Cassandra+Gorilla。

4、聚合计算就是对数据进行范围圈定,进行算子处理

数据另外一条流加工常见的是聚合计算,比如有 3 台 Nginx 程序,部署在 H1、H2、H3 机器上,需要把这三台机器的 PV 加起来,这个就是聚合计算,而需要把 PV 在 httpCode=2xx、3xx 进行展开,则称为多维度聚合计算。

要实现这个目标,从数据视角看,首先需要做范围圈定,也就是 H1、H2、H3 为什么是在一起计算?这就需要通过标签进行关联。范围圈定后进行数据的算子处理,比如常见的 sum、min、max、avg 运算,数据量级不大的情况下,可以让存储模块完成,但当数据量级较大,一般会发送给流式计算平台。京东云选择是用 Spark Streaming 来计算,为了保证稳定性,京东云设计了对流式计算的调度能力,分机房部署了 Spark 计算集群,通过一个 map,指定调度,比如把 Nginx 应用放到 SparkA 进行计算,MySQL 应用放到 SparkB 进行计算,这样,当某个 Spark 出现问题,也能快速做调度止损,定位恢复另一个集群。对于重型开源系统,设计实现的时候,可以考虑在前面加一层 Proxy,将开源细节封装起来,这样当出现异常时,会有较强的掌控能力。

5、报警通路做好“质检员”工作,同时完成通知用户这件事情

告警通路的作用其实是质检,通过抓取数据做检查,发现问题就及时报警。从数据视角来看,报警通路作用归纳到两类,一是时序数据处理,可以依据基于经验的算法,比如简单阈值、同环比等,如果这些方法解决不了,就尝试基于统计的机器学习算法。二是为了让通知更加有效,京东云目前的思路是事件的标签化,支持对告警事件进行合并,比如:用户通过标定告警级别,选择不同的告警方式和时效性,按照环境合并告警。

4 京东云的监控标准设计

“监控需要覆盖基础 - 存活 - 性能 - 业务四个层面,从而保证采集数据的全面,进而避免监控遗漏。 

京东云监控系统设计及落地之路

 

在京东云监控标准设计上,基础监控这一层主要解决机器、网络层面的问题,包括 CPU 、内存、机器死机等问题。存活监控层主要解决程序部署到机器上后是否存活的问题,比如进程退出、端口不工作等问题。应用性能监控层解决程序异常定界的问题,重点关注 google 提出的四大黄金指标 PV、平响,错误、容量。最上层业务监控,模拟用户进行访问,解决服务在用户侧的表现是什么。

那么如何按照监控标准去指导监控产品的落地呢?看京东云如何从发现问题、定位问题和解决问题三个方面来减少 MTTR:

在发现问题阶段,分别面向管理者和运维人员设置监控系统的打分机制及推荐系统,给予管理者一个直观的总分和每个维度的细分得分,使得管理人员对整体监控有个量化的指标,另一方面,对于运维人员,则提供配置推荐、一键启用,可以快速地根据标准去完善监控,达到监控变‘全’。

在定位问题阶段京东云推进了变更可视化项目,将上线、配置更改、第三方的变更事件,都接入到变更事件中,用户可以根据时间去查询时间段的变更,跟报警做关联,京东云也会根据一些相关性的算法推荐,将变更推荐给用户,加速问题定位过程。

处理问题阶段京东云可提供预案平台,对预案进行标准化分类,指导用户管理预案。

5 京东云落地实践:以监控告警收敛项目为例

在监控告警上,运维人员往往在提升告警手段上做了很多工作,比如说通过发邮件的形式到短信、电话的形式等,京东云每月短信发送量 200w+、电话告警每月 4000+,但是运维人员并没有感受到有这么多问题,这就说明告警关注度是下降的,所以告警收敛势在必行,目标就是让告警关注度提升,那如何落地呢?

这就需要首先数据量化,先统计各个渠道的告警总数,然后分两步走,对于产品线负责人,需要让产品线的负责人知道自己部门的情况,另一路出分析数据,拆解产品线发送多的原因,给运维同学提供数据指导,分析各种有可能导致发送告警多的原因,如:一条短信平均接收人、哪些告警规则发送较多等。

基于这些统计数据,监控团队去成立告警收敛项目:在面对接收人过多的情况(一个短信原来需要 10 几个人接收),京东云推出值班表计划,在产品设计上保证告警规则设置的合理性,对于一些大规模触发情况,比如网络故障,京东云默认会按照规则、应用进行合并,同时为了在合并之后让用户能看的更清楚,京东云也推出了移动端程序。

面向未来,颜志杰老师说:“数据处理原来基于规则和经验解决了不少问题,后续疑难杂症会慢慢尝试基于统计和大数据的机器学习,因为效果更明显。在数据收集方面,由于云原生的兴起,常见的可观测数据将会变得更加标准化,而对于一些非结构化的,比如日志,会有机器学习的算法去帮助语义理解标准化。在数据处理层面,对于单数据的处理,我们去判断比如一条曲线的动态阈值是什么样子,很多公司已有不少实践,未来多数据之间的联动处理,会更加有意义,比如一个域名告警了,如果同一时刻其他部门域名大规模告警,那么平台或者网络的可能性较大,否则应该是自身的原因较大,越来越多用大数据的思想分析多指标数据将会更加普遍。同时数据处理方面,Trace、log、Metric 之间的关联将会越来越智能,准确,最后数据驱动整体闭环,未来,监控将会在数据的大道上,通向 AI 化,智能化。”



Tags:京东   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
进入京东金融APP,点击“我”那一栏,登录自己的账号;找到白条页面,点击取现图标,不能超过最大取现额度;输入取现金额后,会自动显示日利息,和本次的手续费。 京东白条取现是京东金融针...【详细内容】
2021-12-16  Tags: 京东  点击:(5)  评论:(0)  加入收藏
想知道京东服饰内衣都有哪些类目吗?想知道如何才能入驻服饰内衣类目吗?想知道服饰内衣类目是否需要特殊资质吗?小编为您详细解析!京东内衣类目旗舰店、专卖店采取自荐品牌入驻,目...【详细内容】
2021-12-08  Tags: 京东  点击:(17)  评论:(0)  加入收藏
背景在日常工作中,我们通常需要存储一些日志,譬如用户请求的出入参、系统运行时打印的一些info、error之类的日志,从而对系统在运行时出现的问题有排查的依据。日志存储和检索...【详细内容】
2021-11-23  Tags: 京东  点击:(22)  评论:(0)  加入收藏
有很多商家在京东上面开设店铺,京东在初期的时候第三方的商家还是非常少的,主要是靠京东自营撑起了整个平台,京东开放第三方商家入驻之后,对于的三方商家而言,与阿里的平台不一样...【详细内容】
2021-10-19  Tags: 京东  点击:(37)  评论:(0)  加入收藏
近期和大家讲的都是信用卡或者银行方面的内容,今天的话就和大家分享一下京东方面的内容吧,京东金融最出名也就是京东白条了和花呗差不多是同一个道理,不管提额也好还是使用都是...【详细内容】
2021-10-15  Tags: 京东  点击:(40)  评论:(0)  加入收藏
赶在双11前夕,京东发布了全新的即时零售品牌“小时购”。消费者下单带有“小时购”标识的商品后,系统会基于LBS周边3-5公里的门店发货,从而实现1小时内配送到家。供给端,小时购...【详细内容】
2021-10-14  Tags: 京东  点击:(40)  评论:(0)  加入收藏
1 内容总概不管是数据分析还是数据运营,少不了做分析报告,通常一份简洁的分析报告总是令人眼前一亮,但是,大部分同学拿到一组数据时,不能很好的应用,没有思路、想法和头绪,这里作者...【详细内容】
2021-09-14  Tags: 京东  点击:(46)  评论:(0)  加入收藏
京东E卡分为电子卡和实体卡,其中电子卡的卡密码需要通过订单详情来获取,可选择支付密码或者短信验证码获取卡密码,那具体怎么使用京东E卡电子卡呢,下面就和小编一起来看看吧!绑定...【详细内容】
2021-09-04  Tags: 京东  点击:(101)  评论:(0)  加入收藏
为帮助各位家长在小升初过程中能够更快更准确的为孩子选择小升初理想学校,同时在志愿填报时提供重要的参考依据,简单整理东城、西城、海淀、朝阳、丰台、石景山、通州7个大区...【详细内容】
2021-04-28  Tags: 京东  点击:(237)  评论:(0)  加入收藏
一、Zuul简介Zuul相当于是第三方调用和服务提供方之间的防护门,其中最大的亮点就是可动态发布过滤器二、Zuul可以为我们提供什么1、权限控制2、预警和监控3、红绿部署、(粘...【详细内容】
2021-04-21  Tags: 京东  点击:(230)  评论:(0)  加入收藏
▌简易百科推荐
非法购买公民信息、开发人脸认证规避技术……今年年初,广东省公安厅网安部门侦破全国首例破解“青少年防沉迷系统”的新型网络犯罪案件,抓获犯罪嫌疑人13名,查处非...【详细内容】
2021-12-28    人民日报客户端  Tags:数据安全步   点击:(5)  评论:(0)  加入收藏
就在今天,腾讯方面宣布将在2022年1月31日下架企业QQ和营销QQ,其实这一消息的降临并不让笔者意外,因为早在今年的10月28日20点之后,企业QQ和营销QQ就被停止了续费服务。相信很多...【详细内容】
2021-12-27  科技探险家    Tags:企业QQ   点击:(20)  评论:(0)  加入收藏
日前,上海交通大学发布《全球电竞之都评价报告》,对全球15个致力于发展电竞之都的城市进行评价,上海作为中国城市电竞发展的排头兵,其拥有众多优质电竞企业及完整产业集群,因此排...【详细内容】
2021-12-27  经济日报    Tags:电竞   点击:(3)  评论:(0)  加入收藏
为优化网络氛围环境,微博又开始整顿用户信息了。本月月初,微博官方发布公告,要求昵称中带有如“二货”“SB”“瘪三”“娘炮”等明显低俗或侮辱性词汇的用户尽快修改,否则将面临...【详细内容】
2021-12-24  运了个营    Tags:微博   点击:(10)  评论:(0)  加入收藏
昨日谷歌宣布,自2022年12月19日开始停止对OnHub的软件支持,OnHub路由器仍将提供Wi-Fi信号,但用户无法用谷歌Home应用程序管理它。无法更新Wi-Fi网络设置、添加额外的Wifi设备或...【详细内容】
2021-12-22  雷峰网    Tags:Google OnHub   点击:(5)  评论:(0)  加入收藏
IT之家 12 月 20 日消息,百度网盘青春版 iOS 客户端今日晚间率先开启内测,安卓客户端将在稍后内测。使用苹果 iPhone 的IT之家小伙伴可以点此下载内测版,需要先下载 TestFlight...【详细内容】
2021-12-21  IT之家    Tags:百度网盘   点击:(10)  评论:(0)  加入收藏
对于拼车单,是接还是不接,不少网约车司机表示很矛盾。接吧,钱少事多,常常跑了个寂寞,不接吧,车多客少,挑三拣四没饭吃。 在平台大力推广拼车单之下,不少司机迫于生活压力,最终还是打...【详细内容】
2021-12-17  网约车情报分享    Tags:滴滴   点击:(9)  评论:(0)  加入收藏
蓝鲸TMT频道12月16日讯,据饿了么官方微信公众号,近日,在圆桌会上,蓝骑士与平台交流了配送安全问题。饿了么表示,线上将技术手段融入安全防护;线下将持续进行安全培训,并试点智能头...【详细内容】
2021-12-17    金融界  Tags:饿了么   点击:(24)  评论:(0)  加入收藏
开源最前线(ID:OpenSourceTop) 猿妹编译项目地址: https://github.com/restic/restic全球知名代码托管平台 GitHub 今天就重磅发布了今年的年度报告——《2021 年度 O...【详细内容】
2021-12-17  Python部落    Tags:   点击:(9)  评论:(0)  加入收藏
新京报快讯 据中国网络视听节目服务协会网站消息,12月15日,中国网络视听节目服务协会发布了《网络短视频内容审核标准细则》(2021)。中国网络视听节目服务协会组织有关短视频平...【详细内容】
2021-12-16    新京报  Tags:短视频   点击:(11)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条