用大数据思维做运维监控

2023-05-16

今天一大早就看到了一篇文章,叫【大数据对于运维的意义】。该文章基本上是从三个层面阐述的:

  1. 工程数据,譬如工单数量,SLA可用性,基础资源,故障率,报警统计
  2. 业务数据,譬如业务DashBoard,Trace调用链,业务拓扑切换,业务指标,业务基准数据,业务日志挖掘
  3. 数据可视化

当然,这篇文章谈的是运维都有哪些数据,哪些指标,以及数据呈现。并没有谈及如何和大数据相关的架构做整合,从而能让这些数据真的变得活起来。

比较凑巧的是,原先百度的桑文峰的分享也讲到日志的多维度分析,吃完饭的时候,一位优酷的朋友也和我探讨了关于业务监控的的问题。而我之前发表在肉饼铺子里的一篇文章【大数据给公司带来了什么】 也特地提到了大数据对于整个运维的帮助,当时因为这篇内容的主旨是罗列大数据的用处,自然没法细讲运维和大数据的整合这一块。

上面的文字算引子,在步入正式的探讨前,有一点我觉得值得强调:

虽然这里讲的是如何将大数据思维/架构应用于运维,平台化运维工作,但是和大数据本质上没有关系,我们只是将大数据处理的方式和思想应用在运维工作上。所以,即使你现在所在的公司没有数据团队支撑,也是完全可以通过现有团队完成这件事情的。

运维监控现状

很多公司的运维的监控具有如下特质:

  1. 只能监控基础运维层次,通过zabbit等工具提供服务器,CPU,内存等相关的监控。这部分重要,但确实不是运维的核心。
  2. 对业务的监控是最复杂的,而现在很多公司的要么还处于Shell脚本的刀耕火种阶段,要么开发能力较强,但是还是东一榔头西一棒子,不同的业务需要不同的监控系统,人人都可以根据的自己的想法开发一个监控的工具也好,系统也好,平台也好。总之是比较凌乱的。
  3. 使用第三方的监控平台。这个似乎在Rails/NodeJS/Pythone相关语系开发的产品中比较常见。我不做过多评价,使用后冷暖自知。

当然也有抽象的很好的,比如点评网的运维监控据说就做的相当好,运维很闲,天天没事就根据自己的监控找开发的搽,让开发持续改进。不过他们的指导思想主要有两个:

  1. 运维自动化。怎么能够实现这个目标就怎么搞,这严重依赖于搞的人的规划能力和经验。
  2. 抽象化,根据实际面临的问题做出抽象,得到对应的系统,比如需要发布,于是又发布系统,需要管理配置文件,所以有配管系统,需要日志分析所以有了有日志分析系统。然而这样是比较零散的。

有点扯远,我们还是focus在监控上。

如果以大数据的思维去思考,我们应该如何做好监控这件事情?

罗列出你的数据源

【大数据对于运维的意义】 这篇文章也讲了,主要有工程数据,业务数据。所有的数据源都有一个共性,就是日志。无论文本的也好,二进制的也好。所以日志是整个信息的源头。日志包含的信息足以让我们追查到下面几件事情:

  • 系统健康状况监控
  • 查找故障根源
  • 系统瓶颈诊断和调优
  • 追踪安全相关问题

从日志我们可以挖掘出什么?

我觉得抽象起来就一个: 指标。
指标可以再进行分类,

  1. 业务层面,如团购业务每秒访问数,团购券每秒验券数,每分钟支付、创建订单等

  2. 应用层面,每个应用的错误数,调用过程,访问的平均耗时,最大耗时,95线等

  3. 系统资源层面:如cpu、内存、swap、磁盘、load、主进程存活等

  4. 网络层面: 如丢包、ping存活、流量、tcp连接数等

每个分类里的每个小点其实都是一个指标。

如何统一实现

千万不要针对具体问题进行解决,大数据架构上的一个思维就是:我能够提供一个平台让大家方便解决这些问题么? 而不是,这个问题我能解决么?

先来看看架构图:

log-collect.png

因为目前我负责应用层的研发,业务还比较少,主要就需要监控三个系统:

  1. 推荐
  2. 搜索
  3. 统一查询引擎

所以监控的架构设计略简单些。如果你希望进行日志存储以及事后批量分析,则可以采用淘宝的这套架构方式:

log-collect2.png

稍微说明下,日志收集Agent可以使用Flume,鹰眼Storm集群,其实就是Storm集群,当然有可能是淘宝内部Java版的,
Storm(或第一幅图的SparkStreaming)做两件事情

  1. 将日志过滤,格式化,或存储起来
  2. 进行实时计算,将指标数据存储到HBase里去

到目前为止,我们没有做任何的开发,全部使用大数据里通用的一些组件。至于这些组件需要多少服务器,就看对应的日志量规模了,三五台到几百台都是可以的。

需要开发的地方只有两个点,有一个是一次性的,有一个则是长期。

先说说一次性的,其实就是大盘展示系统。这个就是从HBase里取出数据做展示。这个貌似也有开源的一套,ELK。不过底层不是用的HBase存储,而是ES。这里就不详细讨论。

长期的则是SparkStreaming(淘宝是使用Storm,我建议用SparkStreaming,因为SparkStreaming可以按时间窗口,也可以按量统一做计算),这里你需要定义日志的处理逻辑,生成我上面提到的各项指标。

这里有一个什么好处呢,就是平台化了,对新的监控需求响应更快了,开发到上线可能只要几个小时的功夫。如果某个系统某天需要一个新的监控指标,我们只要开发个SparkStreaming程序,丢到平台里去,这事就算完了。

第一幅图的平台我是已经实现了的。我目前在SparkStreaming上只做了三个方面比较基础的监控,不过应该够用了。

  1. 状态码大盘。HTTP响应码的URL(去掉query参数)排行榜。比如你打开页面就可以看到发生500错误的top100的URL,以及该URL所归属的系统。
  2. 响应耗时大盘。URL请求耗时排行榜。比如你打开页面就可以看到5分钟内平均响应耗时top100的URL(去掉query参数).
  3. 还有就是Trace系统。类似Google的Dapper,淘宝的EagleEye。给出一个唯一的UUID,可以追踪到特定一个Request的请求链路。每个依赖服务的响应情况,比如响应时间。对于一个由几个甚至几百个服务组成的大系统,意义非常大,可以方便的定位出到底是那个系统的哪个API的问题。这个最大的难点是需要统一底层的RPC/HTTP调用框架,进行埋点。因为我使用的是自研的ServiceFramework框架,通讯埋点就比较简单。如果是在一个业务线复杂,各个系统使用不同技术开发,想要做这块就要做好心理准备了。

现在,如果你想要监控一个系统是不是存活,你不在需要取写脚本去找他的pid看进程是不是存在,系统发现在一定的周期内没有日志,就可以认为它死了。而系统如果有异常,比如有大量的慢查询,大盘一定能展示出来。

描述到这,我们可以看到,这套架构的优势在哪:

  1. 基本上没有需要自己开发的系统。从日志收集,到日志存储,到结果存储等,统统都是现成的组件。
  2. 可扩展性好。每个组件都是集群模式的,没有单点故障。每个组件都是可水平扩展的,日志量大了,加机器就好。
  3. 开发更集中了。你只要关注日志实际的分析处理,提炼指标即可。

大数据思维

对于运维的监控,利用大数据思维,需要分三步走:

  1. 找到数据
  2. 分析定义从数据里中我能得到什么
  3. 从大数据平台中挑选你要的组件完成搭积木式开发

所有系统最可靠的就是日志输出,系统是不是正常,发生了什么情况,我们以前是出了问题去查日志,或者自己写个脚本定时去分析。现在这些事情都可以整合到一个已有的平台上,我们唯一要做的就是定义处理日志的的逻辑。

这里有几点注意的:

  1. 如果你拥有复杂的产品线,那么日志格式会是一个很痛苦的事情。以为这中间Storm(或者SparkStreaming)的处理环节你需要做大量的兼容适配。我个人的意见是,第一,没有其他更好的办理,去兼容适配吧,第二,推动大家统一日志格式。两件事情一起做。我一个月做不完,那我用两年时间行么?总有一天大家都会有统一的日志格式的。
  2. 如果你的研发能力有富余,或者有大数据团队支撑,那么可以将进入到SparkStreaming中的数据存储起来,然后通过SparkSQL等做即席查询。这样,有的时候原先没有考虑的指标,你可以直接基于日志做多维度分析。分析完了,你觉得好了,需要固化下来,那再去更新你的SparkStreaming程序。

后话

我做上面第一幅图架构实现时,从搭建到完成SparkStreaming程序开发,到数据最后进入HBase存储,大概只花了一天多的时间。当然为了完成那个Trace的指标分析,我修改ServiceFramework框架大约改了两三天。因为Trace分析确实比较复杂。当然还有一个比较消耗工作量的,是页面可视化,我这块自己还没有能力做,等招个Web开发工程师再说了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用大数据思维做运维监控 的相关文章

  • 物联网平台大量出现能否将行业带入爆发式发展

    最近今年物联网产业发展迅速 xff0c 作为物联网产业链关键环节 xff0c 物联网平台具有重要作用 中国物联网平台提供商大致有运营商 云计算厂商 互联网巨头 初创公司等 xff0c 比如阿里云 xff0c 华为 xff0c 腾讯 xff0
  • 谁才是物联网连接技术中的王者?

    1 简介 本文介绍了物联网连接技术的现状 xff0c 分析各个细分领域的佼佼者或者王者 2 背景 近些年物联网市场保持持续增长 xff0c 根据IOT ANALYTICS的数据 xff0c 2020年物联网的连接设备超过了120亿个 xff
  • 物联网到底为什么这么火?

    物联网概念自上世纪90年代提出至今已有近30年的历史 xff0c 与互联网 移动互联网的对比来看 xff0c 物联网的发展并不快 xff0c 整个物联网行业一直未能像互联网 移动互联网一样快速的规模化 xff0c 这背后的原因或者制约物联网
  • 国产物联网操作系统的出路在哪里?

    不看这几篇好文 xff0c 就别说自己了解物联网 一 背景和现状 物联网操作系统作为操作系统的一个分支领域已经有了数十年的历史 xff0c 作为应用领域最为宽广 设备数量最为巨大的应用领域 xff0c 物联网操作系统并没有发展出如个人桌面应
  • RISC-V架构能否引领物联网时代?

    不看这几篇好文 xff0c 就别说自己了解物联网 1 RISC V架构异军突起 CPU 是计算机系统 xff08 包含PC 手机与各种智能设备等 xff09 的核心 xff0c 而处理器架构是 CPU 的基石 纵观CPU架构发展历史 xff
  • 不看这几篇好文,就别说自己了解物联网

    物联网技术分享月 精品好文 2021 05 25 Python轻应用有哪些过人之处 xff1f 2021 05 25 物联网场景下为什么可以选择JS语言 2021 05 24 如何从零设计一种物联网组网协议 2021 05 24 带你了解热
  • 创新不是靠痛点,而是靠对效率的持续追求

    什么都等到痛了才去做 xff0c 要你何用 在互联网行业做产品 xff0c 亦或是创业给投资人讲故事 xff0c 一个很核心的点就是要问自己或者告诉对方 xff0c 我的产品击中了什么痛点 xff1f 似乎一切都是靠痛点驱动的 但我认为这是
  • ARMv9能给ARM带来新一轮腾飞吗?(人工智能篇)

    开篇 图1 ARMv9发布 1 自从2011年10月ARM发布ARMv8以来 xff0c 一晃已经过去了近10年 在此期间 xff0c ARM的芯片出货量从11年的79亿片 2 涨到18年的229亿片 3 xff0c 收入从11年的约7 8
  • ARMv9能给ARM带来新一轮腾飞吗?(安全篇)

    接上文 在上一篇文章中 xff0c 讲了下ARM在ARMv9中人工智能领域的相关技术SVE2 xff0c 以及其他人工智能相关的布局 对于ARMv9是否能给ARM带来腾飞 xff0c 仅根据SVE2 xff0c 我认为是不够的 ARMv9另
  • 5G会给物联网行业带来哪些变化?

    不看这几篇好文 xff0c 就别说自己了解物联网 2019 年是5G的商用元年 xff0c 作为街头巷议的热点技术 xff0c 5G到底是什么 xff1f 5G当前的进展怎么样 xff1f 5G的应用场景有哪些 xff1f 5G技术的普及又
  • 必须要了解的物联网安全知识

    不看这几篇好文 xff0c 就别说自己了解物联网 物联网安全概述 物联网的本质 xff0c 是从端到云的数据交互及计算过程 根据这个特点 xff0c 可以将物联网划分为3个层次 xff1a 云 网络和设备 xff0c 也就形成了物联网的攻击
  • 物联网太难 ? 不妨试试用Python来开发

    不看这几篇好文 xff0c 就别说自己了解物联网 开篇 Python 作为一门快速发展的解释性编程语言 xff0c 数以百万计的开发者已经将Python应用在人工智能 游戏开发 数据挖掘 信息安全 系统运维等行业并取得了成功 现如今 xff
  • 边缘计算在物联网行业的应用

    不看这几篇好文 xff0c 就别说自己了解物联网 引言 边缘计算并不是诞生于物联网时代 xff0c AKAMAI作为一家内容分发网络CDN和云服务的提供商 xff0c 并且是世界上最大的分布式计算服务商之一 xff0c 早在2003年就和I
  • 物联网碎片化的一些思考

    不看这几篇好文 xff0c 就别说自己了解物联网 提到物联网遇到的挑战 xff0c 都会谈到物联网碎片化 造成物联网碎片化的原因主要包括以下两个 xff1a 从 物 的大小角度 xff1a 有的 物 很大 xff0c 如一些边缘网关智能设备
  • 开源硬件的前世今生

    不看这几篇好文 xff0c 就别说自己了解物联网 1 序言 在互联网爆发式增长了几十年的今天 xff0c 越来越多的末端硬件设备已经具备连接网络的能力 xff0c 业态也越来越丰富 xff0c 这就是今天所说的物联网 作为一个08年就开始玩
  • 为什么物联网领域使用Rust的项目越来越多?

    不看这几篇好文 xff0c 就别说自己了解物联网 1 概述 Rust是由 Mozilla 员工Graydon Hoare于2006年作为个人项目而创造 xff0c Mozilla于2009年开始赞助该项目 2012年 xff0c 第一个Ru
  • 华为、阿里、小米都在用的全屋智能技术

    不看这几篇好文 xff0c 就别说自己了解物联网 引言 随着物联网技术以及5G技术的高速发展 xff0c 家电 安防 家居等相关领域大厂相继入局 xff0c 曾经不敢想象的联动场景开始走进我们的生活 xff0c 10年前 xff0c 你或许
  • JAVA 正则表达式 (超详细)

    新网站上线 欢迎大家 网站交易中心 在这里你可以购买或者出售你的网站 网站信息发布中心 在这里有各种交易信息的发布 同时提供 一些软件的免费使用 xff08 附有源码 xff09 网站博客系统 这里你可以注册自己的博客 一个账户无限量博客
  • 下一个智能硬件爆品是什么?

    不看这几篇好文 xff0c 就别说自己了解物联网 1 智能硬件迅猛发展 谈到智能硬件 xff0c 业界较认可的定义是 xff1a 智能硬件是继智能手机之后的一个科技概念 xff0c 通过软硬件结合的方式 xff0c 对传统设备进行改造 xf
  • 物联网教育现状和前景

    不看这几篇好文 xff0c 就别说自己了解物联网 1 物联网行业现状 1 1 高速发展的物联网行业 物联网 xff08 The Internet of Things xff0c 简称IoT xff09 是指通过各种传感器技术 射频识别技术

随机推荐

  • 一文看懂蓝牙在物联网中的应用场景

    不看这几篇好文 xff0c 就别说自己了解物联网 简介 蓝牙作为一项发明于上世纪的近距离无线通信技术 xff0c 在手机 xff0c 电脑领域已经有了充分地基础 xff0c 那么这项技术在物联网领域又会有哪些应用场景呢 xff1f 蓝牙技术
  • 物联网设备连接的下一个引爆点:4G Cat.1

    不看这几篇好文 xff0c 就别说自己了解物联网 一 背景 物联网从概念兴起至今已经过了好几些年了 何为物联网 xff0c 首先要定义何为 物 xff08 Things xff09 xff0c 笔者理解所有具备连接能力的设备都可以是物 xf
  • 物联网云端一体人工智能方案的探索

    不看这几篇好文 xff0c 就别说自己了解物联网 1 高速发展的人工智能 说到人工智能 xff0c 大家并不陌生 xff0c 无论是围棋大战中战胜顶尖段位人类围棋手的Alpha Go xff0c 还是弹跳自如的波士顿机器狗 而无数的科幻电影
  • 带你走进多媒体世界:视频文件是怎么播放出来的

    不看这几篇好文 xff0c 就别说自己了解物联网 1 前言 多媒体是什么 xff1f 维基百科的解释是 xff1a 多媒体 xff08 Multimedia xff09 xff0c 在电脑应用系统中 xff0c 组合两种或两种以上媒体的一种
  • 从语音交互历史浅看它是否会是物联网行业的一个爆点?

    不看这几篇好文 xff0c 就别说自己了解物联网 背景 近几年得益于人工智能在语音领域的突破 xff0c 语音AI已经趋于成熟 xff0c 尤其在智能音箱领域 xff0c 智能音箱又带来了IoT应用到智能家居 本文主要讨论从语音交互历史看它
  • 物联网之IP Camera解决方案简介

    不看这几篇好文 xff0c 就别说自己了解物联网 前言 IP Camera 即网络摄像头 xff0c 是物联网领域中的一个重要场景 本文将带领读者了解IP Camera这一典型物联网场景的市场 IP Camera的重要组成部分 以及以Haa
  • 如何快速搭建一个像“天猫精灵”的智能语音助手?

    不看这几篇好文 xff0c 就别说自己了解物联网 天猫精灵相信大家都不陌生了 xff0c 它是阿里巴巴于2017年7月5日发布的AI智能终端品牌 让用户以自然语言对话的交互方式 xff0c 实现影音娱乐 购物 信息查询 生活服务等功能操作
  • 如何基于芯片SDK开发安防监控产品

    1 前言 近些年来 xff0c 安防监控市场需求广泛 安防监控已经成众多细分行业 xff0c 如金融 教育 医疗 交通等 xff0c 安全的必需品 消费类市场中 xff0c 随着人们对人身及财产安全意识的不断提升 xff0c 中小企业 商铺
  • Spark Streaming 与 Kafka 集成分析

    前言 Spark Streaming 诞生于2013年 xff0c 成为Spark平台上流式处理的解决方案 xff0c 同时也给大家提供除Storm 以外的另一个选择 这篇内容主要介绍Spark Streaming 数据接收流程模块中与Ka
  • MircoPython 的组件扩展方法

    1 背景 本节内容将详细介绍如何扩展一个新的MicroPython 的组件 组件扩展方式分两种 xff1a 模块扩展 xff0c 模块 43 类扩展 右边netmgr 功能以模块的方式扩展的 xff0c 在使用的时候直接导入模块进行使用 左
  • HaaS第一本实体书籍 当代物联网开发圣经 现在开始预售

    元宇宙 xff08 Metaverse xff09 概念近期霸屏大众视野 xff0c 在社会各圈层掀起热议 这一极具科技感与未来感的抽象概念激发了人们无穷想象力 xff0c 现实世界与虚拟世界融合仿佛近在眼前 元宇宙概念始于 雪崩 一书 x
  • 工科生的信仰 ESP32 + HaaS Python 打造HaaS收音机

    HaaS收音机 简介 FM收音机作为上世纪的产物 xff0c 一度是大家日常使用最多的工具之一 xff0c 现在已经很少用到 xff0c 主要还是用在汽车上 一台经典的收音机往往能勾起很多人的回忆 本案例教大家如何快速打造一台物联网FM收音
  • 【HaaS Python硬件积木】HCSR04超声波测距传感器

    来这里发现更多拿来即用的传感器 HaaS开发框架 HaaS积木方案 xff0c 赋能生态开发者 xff0c 让您快速找到自己需要的解决方案 xff0c 硬件主板与外设 xff0c 以及各种应用组件 https haas iot aliyun
  • 【HaaS Python硬件积木】4路触摸电容模块-TTP224

    来这里发现更多拿来即用的传感器 HaaS开发框架 HaaS积木方案 xff0c 赋能生态开发者 xff0c 让您快速找到自己需要的解决方案 xff0c 硬件主板与外设 xff0c 以及各种应用组件 https haas iot aliyun
  • 【HaaS Python硬件积木】土壤湿度传感器

    来这里发现更多拿来即用的传感器 HaaS开发框架 HaaS积木方案 xff0c 赋能生态开发者 xff0c 让您快速找到自己需要的解决方案 xff0c 硬件主板与外设 xff0c 以及各种应用组件 https haas iot aliyun
  • 【HaaS Python硬件积木】空气质量检测模块 - CCS811

    空气质量检测模块 CCS811 来这里发现更多拿来即用的硬件积木 https haas iot aliyun com solution detail hardware 一 产品简介 通过CCS811传感器模块可以测量环境中TVOC 总挥发性
  • 阿里云IoT | HaaS开源百校科技助力计划 —— 开源大使招募

    x1f44b Hi xff0c 各位爱好科技的同学们 在这个技术快速升级 重构的时代 有这样一个活动 xff0c 你不容错失 它就是HaaS开源百校科技助力计划 这是一项由阿里云IoT HaaS技术团队在全国高校推出的活动 帮助未来的新一代
  • HaaS Python 2.2 版本发布,更好更快更稳,将开发易用性进行到底

    x1f44b Hello 好久不见 HaaS Python 2 2 版本升级如期发布 来看看又多了哪些激动人心的新功能吧 HaaS Studio 版本升级 布局全新改版 xff0c 热门动态首页直达支持从案例列表中快速创建案例支持快速引入传
  • 【HaaS Tuesday】物联网局域通信 选择 Wi-Fi or 蓝牙?听工程师们笑谈技术发展史

    物联网局域通信 Wi Fi or 蓝牙 xff1f 听大佬们笑谈技术发展史 HaaS Tuesday 第二期上线 快来交出你的一键三连 xff01
  • 用大数据思维做运维监控

    今天一大早就看到了一篇文章 xff0c 叫 大数据对于运维的意义 该文章基本上是从三个层面阐述的 xff1a 工程数据 xff0c 譬如工单数量 xff0c SLA可用性 xff0c 基础资源 xff0c 故障率 xff0c 报警统计业务数