10月30日,全球权威数据调研机构IDC正式发布《IDCMarketScape:
中国DevOps云市场2019,厂商评估》报告。京东云凭借丰富的场景和实践能力,以及高质量的服务交付和平台稳定性,取得优异出成绩,跻身“Major Players”(核心厂商)位置。
京东云DevOps能力起源于自身的业务实践,针对京东集团的复杂业务场景打造并经受住多次618、11.11电商大促的严峻考验,保证了高效高质的交付和对变化的灵活应对。能够支持复杂场景的自动化运维需求、实现工具链产品与平台化产品结合,帮助客户根据不同的需求灵活定制方案。

为了让大家更深入的理解devops,了解京东云devops具体的落地实践以及如何提升效率与保障稳定性,进一步结合自身业务设计实施devops。我们第一期将会重点为大家介绍DevOps中的监控部分,通过了解京东云自己的企业级监控是怎么来设计的,来更好地理解监控系统的样貌。

监控目标

监控是运维的生命线,其目标是快速的发现问题、定位、止损(see->know->act),缩短异常MTTR,为了达到这个目标,期望监控系统具备:

  • 丰富的数据采集能力,能对监控对象能进行深度观测。 灵活的数据加工能力,比如把相关的数据汇聚起来,得到我们需要关注的核心数据。
  • 异常检测能力,从最简单的阈值判断到各种异常检测算法,教会机器看懂是不是出现异常了。其本质上也是一种对数据的加工能力。
  • 收到异常之后,可以通过dashbord、趋势图进行问题定位,即数据的展示能力。
  • 如果做的更加深入,可以有根因推荐平台,把最近的变更、关联的告警做一些推荐,加速定位的过程。
  • 问题定位完成之后,期望把运维处理的经验沉淀下来,这样就形成了预案平台,便于更加快速的止损。
  • 当然,最重要的,一个好的监控系统需要具备高可靠性,本身监控系统就是为了发现异常,监控自身程序挂了,没有人知晓肯定是不行的,这就引申出来了,监控系统的监控怎么做的问题,可以当做一个发散的问题,大家考虑一下。

监控标准

介绍完监控目标和监控系统应该具备的功能点后,先不讨论监控系统如何实现,首先回答一个问题,如何确认监控加全了?有没有遗漏?

估计很多同学会遇到这样的问题,为此,京东云提出了一套监控标准,指导用户添加监控,确保监控“加全”,避免遗漏,详情如图所示。

监控标准分为四层,从下往上看:

  • 首先是基础监控,这一层主要解决机器、网络层面的问题,包括我们常见的cpu、内存,机器死机等问题
  • 然后是存活性监控,解决程序部署到机器上后,是否存活的问题,比如进程退出,端口发送一个ping过去,没有返回pang
  • 再上一层,则是性能监控,重点关注Google提出的四大黄金指标pv、平响,错误码和容量等,解决分布式程序的定界问题(比如通过访问MySQL的时间飙升知道是下游MySQL的问题)
  • 最上层是业务监控,模拟用户进行访问,解决服务在用户侧的表现是什么
    有了标准,设计的监控系统按照标准来落地,可以给出一些数据化的运营指标,推动监控的完善。

典型监控系统设计

了解了监控目标和定义了监控标准,相当于对解决的问题域有了一些背景知识了,下面就大概介绍下典型的监控系统包含哪些功能模块,本文只是做一个大概的介绍,后续会对不同模块方向有一些专门的介绍。

上图还是分为四层,从下往上我们依次来介绍:

最底层叫数据抽象层,大家可能看到了比较熟悉的词语是CMDB,这一层把资源视角抽象为运维&运营视角,比如你搭建了一个卖书的网站,用了nginx、mysql等程序,在资源视角,这是一台台机器运行在互联的idc环境上,但可以抽象成这是一个卖书的产品,有mysql、nginx等应用,这样你的监控数据自然可以附加这种属性(标签),最终在后续数据处理的时候可以发挥作用

有了数据抽象层,统一了我们对监控实体的认知,基于这个抽象;上一层就是数据采集层,这里列举了众多采集方式,包括进程、日志、自定义、接口pull、产生数据主动push等,整个数据采集,就是一个标准化的过程,把观测对象的数据通过各种手段收集上来,转换为我们监控系统定义的数据格式。

数据采集后,就是加工的过程,我们再回忆一下,监控的目标是发现、定位、解决问题;那么必须对数据做加工,这就又可以分为以下处理流:

  • 左边这条进行了数据加工(聚合计算),比如把10台nginx的pv累加起来;而且可以按照各种维度(标签)累加,常见的需求包括监控项自身的标签(比如pv的状态码为5xx的聚合);也包括监控对象的标签(比如某个机房的pv累加起来),监控系统需要具备这种灵活的数据加工能力。
  • 中间的一路进行了数据存储,便于趋势图、dashbord能够查看到;有很多问题,还是需要靠人工经验去做判断。这里面会要求存储具备各种查询的能力,比如sum、max、min、avg、topN、分位值等。
  • 右边一路则是报警通路,进行异常检测,教会机器怎么看图,辨别出哪些指标有异常;一般是先做运算,比如发现某台机器的内存低于阈值了,然后会有一个模块去做收敛以及一些干预(比如屏蔽/升级等),最后确定要通知人员处理了,对接不同的告警方式(邮件、短信、微信)。
  • 当然还有一些离线挖掘,根因推荐,这些数据处理最终的目标还是能够让机器识别更多的异常、通过经验/算法,找到‘根因’

数据处理之后,最终是让人去使用的,最上层就是数据的展示层,要展示对用户有效的数据,用户通过数据能快速发现定位问题,并通过数据分析及时做出止损操作。也就是要让数据更好的服务用户。

综上,我们可以了解到,监控系统是以数据为中心,在数据之上扩展其处理能力的一个系统;后续我们会对各个方向再进行深入的介绍,欢迎和各位进行交流。

IDC中国企业软件市场高级分析师王楠认为:“京东云DevOps能力源于自身业务实践,是京东技术能力输出的重要组成部分,尽管推出相对较晚,但发展速度快、成熟度高,工具链和平台功能已基本涵盖DevOps的主要流程阶段。同时,京东云DevOps平台还与公有云平台深度集成,不仅极大提升了服务交付效率和稳定性,还能高效助力用户的自动研发和运维。”

点击【京东云】可了解更多京东云DevOps产品内容。

欢迎点击“京东云”了解更多精彩内容。

DevOps专题 | 大型企业级监控系统设计的更多相关文章

  1. DevOps专题 |监控,可观测性与数据存储

    对于DevOps而言,监控是其中重要的一环,上一次的专题内容中,我们与大家分享了大型企业级监控系统的设计.今天我们将和大家从另一个角度进一步探讨互联网工程技术领域的监控设计(monitoring):系 ...

  2. Linux实战教学笔记34:企业级监控Nagios实践(上)

    一,Nagios监控简介 生活中大家应该对监控已司空见惯了,例如:餐馆门前的监控探头,小区里的视频监控,城市道路告诉监控探头等,这些监控的目的大家都很清楚,无须多说.那么,企业工作中为什么要部署监控系 ...

  3. 建设DevOps统一运维监控平台,全面的系统监控 Zabbix VS Nagios VS Open-Falcon OR Prometheus

    前言 随着Devops.云计算.微服务.容器等理念的逐步落地和大力发展,机器越来越多,应用越来越多,服务越来越微,应用运行基础环境越来多样化,容器.虚拟机.物理机不一而足.面对动辄几百上千个虚拟机.容 ...

  4. 互联网企业级监控系统 OpenFalcon

    Open-Falcon 人性化的互联网企业级监控系统,Open-Falcon 整体可以分为两部分,即绘图组件.告警组件.其中: 安装绘图组件 负责数据的采集.收集.存储.归档.采样.查询.展示(Das ...

  5. 【miscellaneous】监狱智能视频监控系统设计解决方案

    监狱智能视频监控系统设计解决方案 一.系统概况 随着司法监狱管理系统内视频监控系统的日益发展,现有的被动式人工监控这一传统模式已无法满足新形势下的监管工作需求,尤其是现在靠轮询的视频监控方式,无法对突 ...

  6. 企业级监控软件zabbix搭建部署之zabbix server的安装

    企业级监控软件zabbix搭建部署之zabbix server的安装 zabbix线上已经应用半年多了,关于zabbix在生产环境中的使用心得,以及一些经验写下来,希望让大家少走弯路,共同学习! 环境 ...

  7. 企业级监控软件Zabbix搭建部署之zabbix在WEB页面中的配置

    企业级监控软件zabbix搭建部署之zabbix在WEB页面中的配置 企业级监控软件zabbix搭建部署之zabbix在WEB页面中的配置 关于安装请看 http://www.linuxidc.com ...

  8. 使用Ubuntu系统编译安装Zabbix企业级监控系统

    使用Ubuntu系统编译安装Zabbix企业级监控系统   作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Ubuntu系统部署笔记:https://www.cnblogs.com/ ...

  9. 使用Ubuntu系统管理包工具(apt)部署Zabbix企业级监控系统

    使用Ubuntu系统管理包工具(apt)部署Zabbix企业级监控系统  作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Ubuntu系统部署笔记:https://www.cnblo ...

随机推荐

  1. Django(七)模型:字段属性、字段选项(参数)

    一.模型类属性命名限制 参考:https://docs.djangoproject.com/zh-hans/3.0/topics/db/models/ 1)不能是python的保留关键字. 2)不允许 ...

  2. JavaScript动态实现div窗口弹出&消失功能

    先积累一个JavaScript动态实现div窗口弹出&消失功能 首先是index.jsp代码 <html> <head> <link rel="styl ...

  3. centos6.7开启linux虚拟机内部错误

    如图 这个需要用管理员身份运行就好了 右键----->以管理员身份打开,正常启动

  4. [LeetCode] 931. Minimum Falling Path Sum 下降路径最小和

    Given a square array of integers A, we want the minimum sum of a falling path through A. A falling p ...

  5. 剑指offer_2.3_Day_6

    大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 public class Solution { public int Fibo ...

  6. TensorFlow2 Part2:基础知识回顾

    python面向对象编程回顾 基础概念: 面向对象的编程简称OOP,它把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向对象的设计思想是抽象出Class,根据Class(类)创建In ...

  7. js基础学习之-js全局对象

    声明的三种方式: 第一种: var test; //或var test = 5; 第二种: test = 5; 第三种: window.test; //或window.test = 5; //只是使用 ...

  8. hdu 3308 线段树,单点更新 求最长连续上升序列长度

    LCIS Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  9. ROS2学习日志:TurtleSim测试日志(基于ROS2 Eloquent Elusor)

    TurtleSim测试日志(基于ROS2 Eloquent Elusor) 1.ros2 run 1.1 ros2 run turtlesim turtlesim_node --ros-args -- ...

  10. IT日常技能:VMware网络配置

    1.0 基本概念 集线器:把一流量为M的端口分为N个端口,每个端口流量为M/N 交换机:把一流量为M的端口分为N个端口,每个端口流量仍为M 路由器:相当于两块网卡,一块连接外网并负责NAT, 另一块负 ...