深度解析观测云智能监控的核心设计原理

背景

在监控高度分布式的应用程序时,可能依赖于多个基于云的和本地环境中的数百个服务和基础设施组件,在识别错误、检测高延迟的原因和确定问题的根因都是比较有挑战性的。即使已经具备了强大的监控和警报系统,但是基础设施和应用程序也可能会随着时间的推移而发生变化,这很可能会导致难以可靠地检测异常行为,而对于 7 * 24 小时不间断运行的后台服务,监控告警是稳定性运行的基石。很多开发者都有过这样的经历,对服务的每一个指标都做了严格的监控和告警,唯恐漏掉告警导致问题无法发现,导致每天接收到大量的无效告警,告警的泛滥逐渐麻痹了警惕性,结果真实的问题初漏端倪时却被忽略,最终导致了严重的故障。如何提升告警的有效性,准确识别问题,同时又不至于淹没在大量的无效告警中,正是本文所探讨的内容。

智能监控系统在现代 IT 基础设施中扮演着至关重要的角色。它不仅有助于业务分析和用户行为分析,还能迅速定位故障根因。智能监控可以在业务类指标和波动性较强的指标中快速定位异常节点,适用于多维指标的关键维度定位。在微服务架构中,它通过分析服务调用和资源依赖来快速分析异常。

智能监控不需要配置检测阈值和触发规则,只需设定检测范围和通知人即可一键开启。基于智能检测算法,它可以识别异常数据并预测未来趋势。由于其高效性和准确性,智能监控在云平台的查看和管理中也占据了重要位置。

告警是可靠性的基础

首先来看一下告警的重要性,为什么我们需要耗费这么多精力来优化告警。虽然我们都期望一个服务是没有故障的,但事实确是不存在 100% 没问题的系统,我们只能不断提升服务的可靠性,我们期望做到:

  • 对服务当前状态了如指掌,尽在掌控
  • 能够第一时间发现问题,并且快速定位问题原因

要想做到以上两点,只能依赖完善的监控&告警,监控展示服务的完整运行状态,但是不可能一直盯屏观察,并且也不可能关注到所有方面,要想被动的了解系统状态,唯有通过告警,自动检测异常情况。所以说,告警是团队监控服务质量和可用性的一个最主要手段。

告警面临的现实问题

1、业务动态变化指标很难设定合适的静态阈值

随着业务的变化,相关的指标往往呈现出以小时、天、周为周期的季节性特征。这些指标本身就起伏不定,导致静态阈值、同比阈值都不好配。而采用偷懒的方式选择对所有应用/接口的响应时间、错误率和调用量等等指标配置成固定阈值自然会产生大量误告警。

2、相同指标不同应用中阈值不同

以应用响应时间指标为例, 有的接口正常时响应时间可能在 200ms 左右,那么当响应时间大于 300ms 时就可以判定为异常。然而,真实的业务场景中有些接口长期访问量大, 整体指标在 500ms 左右正常波动,所有这时候合适的告警阈值可能是 600ms 左右。而一个应用可能有几百个接口,这时要对所有接口配置合适的阈值,时间成本就会变得非常高。

3、指标的阈值会随着业务变化

随着公司业务发展、新应用上线,一些指标正常状态的阈值都会不断变化。如果没有及时更新阈值,就很容易产生大量误告警。

告警设置原则

每当告警发生时,运维同学需要暂停手头工作,查看告警。但是这种中断非常影响工作效率,增加研发成本,特别对正在开发调试的同学,影响很严重。所以,每当我们收到告警时,我们希望它能真实的反映出异常,即告警尽可能不误报(对正常状态报警);每当有异常产生时,报警应该及时发出来,即告警不能漏报(错过报警)。误报和漏报总是一对矛盾的指标。以下是一些告警设置原则:

  • 告警具备真实性:告警必须反馈某个真实存在的现象,展示你的服务正在出现的问题或即将出现的问题
  • 告警表述详细:从内容上,告警要近可能详细的描述现象,比如服务器在某个时间点具体发生了什么异常
  • 告警具备可操作性:每当收到告警时,一般需要做出某些操作,对于某些无须做出操作的告警,最好取消。当且仅当需要做某种操作时,才需要通知
  • 新告警使用保守阈值:在配置告警之初,应尽可能扩大监控告警覆盖面,选取保守的阈值,尽可能避免漏报
  • 告警持续优化:后续持续对告警进行统计分析,对误报的告警,通过屏蔽、简化、阈值调整、更精准的体现原因等多种方式减少误报,这是一个相对长期的过程

再以请求失败举例,如仅当请求的失败量超过某一阈值时告警,可能存在多种原因,如一些恶意构造的请求,也触发失败量告警。这样的告警既不具备真实性,也不具备可操作性,因为确实无需任何处理。对于此类情况,我们应该尽可能通过特性加以识别,从而更加精准的区分原因的告警。

智能监控介绍

常见的异常检测方案

无监督方案

1、最大值,最小值波动率阈值判定法

通过检测数据集中的最大值和最小值,以及它们的波动率(变化率)来识别异常。设置一个预定义的阈值,如果数据超过这个阈值就被标记为异常。

2、3-sigma 原理

基于正态分布理论,假设数据集服从正态分布,任何超出均值±3个标准差范围的数据点都被认为是异常。

3、basic detectors 控制图理论

使用控制图(如Shewhart控制图、CUSUM控制图、EWMA控制图)来监控数据变化,确定数据是否在可接受的控制范围内,超出控制范围的数据点被认为是异常。

有监督方案

1、统计回归

  • linear regression(线性回归):使用线性回归模型预测数据点,如果实际值与预测值的差异超过预定义阈值,则标记为异常。
  • logistic regression(逻辑回归):使用逻辑回归模型对数据进行分类,预测数据点是正常还是异常。

2、机器学习

  • decision tree(决策树):使用决策树模型对数据进行分类,树的节点分裂依据变量的重要性。
  • naive bayes(朴素贝叶斯):基于贝叶斯定理,假设特征之间相互独立,计算数据点属于各分类的概率。
  • random forest(随机森林):集成多棵决策树,通过投票机制确定数据点分类。
  • xgboost:基于梯度提升的决策树集成方法,优化了计算效率和模型性能。

3、深度学习

  • DNN(深度神经网络):使用多层神经网络对数据进行建模,捕捉复杂的特征关系。
  • LSTM(长短期记忆网络):一种特殊的RNN,适用于时间序列数据,能够捕捉长期依赖关系。
  • DNN+Attention:在DNN中引入注意力机制,增强模型对重要特征的关注能力。
  • LSTM+Attention:在LSTM中引入注意力机制,增强模型对重要时间点的关注能力。
  • VAE(变分自编码器):一种生成模型,通过学习数据的潜在分布进行异常检测。

观测云智能监控方案介绍

智能监控方案通过一系列的步骤实现对 IT 基础设施和应用的全面监控。其总体实现原理包括数据收集与预处理、特征工程、预测模型、异常检测与验证,以及告警与通知。这些步骤相互配合,形成一个完整的监控闭环,确保用户系统的稳定和高效运行。

数据收集与预处理

1、数据收集

智能监控系统首先需要收集过去 30 天的时间序列数据,每分钟一个时间点。这些数据可以包括主机资源使用情况、应用性能指标、用户访问日志等。

2、数据预处理

在收集到数据后,需要进行预处理以确保数据的质量。预处理步骤包括数据清洗(去除噪声和异常值)、数据填补(处理缺失值)、数据标准化等。

特征工程

在预处理后的数据基础上,进行特征工程以提取时间序列数据的关键特性。这些特性包括:

  • 最大值(Max)和最小值(Min):表示数据的极值。
  • 值域(Range):最大值与最小值的差。
  • 均值(Mean)和中位数(Median):表示数据的集中趋势。
  • 方差(Variance)和标准差(Standard Deviation):表示数据的离散程度。
  • 峰度(Kurtosis)和偏度(Skewness):表示数据分布的形态。
  • 同比(Year-over-Year)和环比(Month-over-Month):表示数据的变化趋势。
  • 周期性(Periodicity):表示数据的周期特性。
  • 自相关系数(Autocorrelation Coefficient):表示数据的自相关性。
  • 变异系数(Coefficient of Variation):表示标准差与均值的比率。

异常检测

智能监控系统通过收集时序数据,并利用历史数据建立的置信区间来预测正常波动范围。系统会对比当前时间段的数据特征与历史数据,检测数据是否超出了预定的置信区间。如果数据点超出了这个范围,系统将判定为异常并可能触发警报;若数据点在正常范围内,则系统会继续监控,确保实时数据的稳定性和安全性。

异常数据示例:

告警与通知

当检测到异常时,智能监控系统会实时发送告警通知给相关人员。通知可以通过多种渠道发送,如电子邮件、短信、即时消息应用等,确保相关人员能够及时响应和处理。

应用场景

应用智能检测

应用程序是直接面向用户的,任何性能问题(如响应时间延迟、错误率上升)都会显著影响用户体验。传统的应用监控方法通常难以应对复杂的应用架构和快速变化的负载情况。

应用智能检测通过监控应用的各种性能指标,及时发现和处理异常情况。例如,智能监控系统可以检测到某个应用的响应时间突然增加,并分析其原因可能是由于某个依赖服务的性能下降。通过这种方式,开发和运维团队可以快速响应,优化应用性能,确保用户体验的稳定性。

  • 异常总结:显示查看当前异常应用程序服务标签、异常分析报告详情、异常值分布情况统计
  • 资源分析:对请求数的监控,可查看资源请求数排行(TOP 10)、资源错误请求数排行(TOP 10)、资源每秒请求数排行(TOP 10)等信息

主机智能检测

在现代 IT 基础设施中,主机(服务器)的稳定性和性能直接影响到所有应用和服务的正常运行。主机资源(如 CPU、内存、磁盘、网络等)的异常使用情况可能会导致系统崩溃或性能下降。

主机智能检测基于智能检测算法,定期对主机的 CPU、内存进行智能检测。通过对出现 CPU、内存异常的主机进行根因分析,确定该主机是否存在突增/突降/区间性上升的异常情况,从而监控主机的运行状态及稳定性。当智能监控系统识别异常时会通知相关人员进行处理。通过此检测,系统管理员可以快速定位并解决潜在问题,确保主机的稳定运行。

  • 事件内容:显示查看监控器配置的事件内容
  • 异常总结:显示查看当前异常主机名标签、异常分析报告详情、异常值时序图显示异常趋势
  • 异常分析:异常分析仪表板,可查看主机的异常进程、CPU 使用率等基础信息
  • 主机详情:可查看主机集成运行情况、系统信息,及云厂商信息

Kubernetes 智能检测

Kubernetes 作为一个流行的容器编排平台,被广泛用于管理和部署容器化应用。在大型集群环境中,Kubernetes 的资源管理和服务状态监控变得尤为重要。

Kubernetes 智能检测基于智能检测算法,通过定期监控关键指标,如 Pod 总数、Pod 重启次数以及 API Server QPS 等,Kubernetes 智能检测能够及时发现并预测集群中可能出现的问题。这种方法不仅能识别出资源使用的异常波动,还能通过根因分析精确指出问题源头,无论是配置失误、资源不匹配还是请求过多。通过智能检测,运维团队可以及时调整资源配置或优化应用,确保 Kubernetes 集群的高效和稳定运行。

  • 异常总结:显示查看当前集群异常 APIServer 节点数分布情况统计。
  • 异常分析:可查看 APIServer 节点数、API QPS、在处理读请求数量、写请求成功率、在处理写请求数量等信息。

日志智能检测

日志文件记录了系统和应用程序的运行状态,是问题诊断和故障排除的重要依据。传统的日志监控方式通常依赖于手工检查和简单的规则匹配,效率低且容易遗漏关键问题。日志智能检测利用先进的算法自动分析日志数据,识别异常日志条目和频率。例如,智能监控系统可以检测到某个时间段内错误日志的频繁出现,并关联到具体的应用或服务。通过对日志的智能分析,运维人员可以快速定位故障原因,提升问题解决的效率和准确性。

  • 异常总结:可查看当前异常日志标签、异常分析报告详情、及错误请求数分布情况
  • 错误分析:可查看错误日志的聚类信息

智能监控的未来展望

更高的自动化程度

1、智能化的自我优化监控系统

未来的智能监控系统将进一步提升自动化程度,减少对人工干预的依赖。通过机器学习和人工智能技术,监控系统能够自我学习和优化,自动调整监控策略和参数。例如,系统可以通过历史数据和实时数据的分析,自适应地调整检测算法和阈值,持续优化异常检测的准确性和效率。

2、自动化响应和修复

除了自动化监控,未来的系统将集成自动化响应和修复机制。当检测到异常时,监控系统可以自动触发预定义的修复脚本或策略,执行自动化的故障处理和资源调整,减少人工介入的时间和错误风险。

更精准的异常检测

1、高级算法与深度学习

未来的智能监控系统将引入更高级的算法和深度学习技术,以提高异常检测的精准度。通过深度神经网络和复杂的时间序列分析模型,系统可以更准确地捕捉和预测异常模式,降低误报率和漏报率。

2、多源数据融合

未来的监控系统将整合更多的多源数据,包括传感器数据、用户行为数据、业务指标数据等,通过多维度的数据融合分析,提高异常检测的全面性和准确性。多源数据的融合使得系统对异常的理解更加全面,可以更准确地定位异常根因,提供更有针对性的解决方案。

增强的用户体验

1、智能化的用户界面

未来的智能监控系统将提供更加智能化和友好的用户界面。通过自然语言处理和智能助手技术,用户可以通过语音或文本与监控系统进行交互,快速获取系统状态和异常信息。例如,用户可以询问“当前系统的健康状况如何?”系统会自动生成详细的健康报告和建议。

2、个性化监控与定制化服务

未来的监控系统将提供更加个性化的监控服务,根据用户的需求和业务特点,定制化监控策略和告警规则。系统可以通过分析用户的使用习惯和业务模式,自动推荐最佳的监控配置和优化方案,提升用户的管理效率和体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/754423.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

学校选用SOLIDWORKS教育版进行授课的理由

在当代的工程与技术教育领域,计算机辅助设计软件(CAD)已经变成了一个不可缺少的教学辅助工具。SOLIDWORKS作为一个功能齐全且用户友好的CAD软件,其教育版本在学校教学环境中受到了广泛的欢迎。本文将对学校教学中选用SOLIDWORKS版…

OCR训练和C#部署英文字符训练

PaddleOCR是一个基于飞桨开发的OCR(Optical Character Recognition,光学字符识别)系统。其技术体系包括文字检测、文字识别、文本方向检测和图像处理等模块。以下是其优点: 高精度:PaddleOCR采用深度学习算法进行训练…

台式电脑没有音响?你还可以用这 7 个软件把手机变成音响

台式电脑没有音响?你还可以用这 7 个软件把手机变成音响 怎么让手机当电脑音响 怎么让电脑连接手机的麦克风 手机怎么变电脑麦克风 1.AudioRelay 官网audiorelay加点net提供 Windows 和 Android 应用程序下载 再打开作为 Client 的 Android 端,它会自…

大型企业组网如何规划网络

大型企业组网是一个复杂的过程,它需要细致的规划和设计,以确保网络能够满足企业的业务需求,同时保证性能、安全性和可扩展性。以下是规划大型企业网络的一些关键步骤和考虑因素: 1. 需求分析 业务需求:与各个业务部门…

如何进行员工 OKR 反馈?

目标和关键结果框架是一种协作性的目标设定方法,帮助团队设定理想的目标(目标),并有具体的、可衡量的行动项目,称为关键结果。实施 OKR 为一个富有成效的、以目标为导向的环境奠定了基础,从而消除了提供反馈…

电脑开机就一直在开机界面转圈,怎么回事?

前言 前段时间小白去给一位朋友修电脑。她说这个电脑很奇怪,有时候开机很快就进入电脑界面,但有时候开机一直在那转圈,半天也不见进入。 Windows7系统的小伙伴应该也有遇到过类似的问题,就是电脑一直在Windows的logo界面&#xf…

Halcon 重叠区域 显示汉字 图像分割

一 如何填充区域之间的GAP或分割重叠区域 read_image(Image,fabrik)*区域生长法将图像分割成相同强度的区域,并将其划分成大小为行*列的矩形。 为了确定两个相邻的矩形是否属于相同的区域, *仅使用其中心点的灰度值。 如果灰度值差小于等于公差&#xff…

Java使用Graphics2D画图,画圆,矩形,透明度等实现

背景 如上图,需要使用Java生成一个图片, 并以base64编码的形式返回给前端展示。 使用Graphics2D类,来进行画图,其中需要画方框、原型、插入图标、写入文字等,同时需要设置透明度等细节点 环境:Jdk17&#…

NAS—网络附加存储

关键词:私有化存储、Nas、云盘、群晖、Tailscale、 前言 身处于互联网时代的我们,几乎每时每刻都在与计算机打交道,而软件则作为我们和计算机之间沟通的桥梁,因此可以认为软件的作用是:将计算机能力进行包装&#xf…

期货散户应该如何有效的管理仓位呢?

期货散户应该如何有效的管理仓位呢?首先,他们要意识到自己所做的决定是很重要的。其次,还要注意自己的风险承受能力。最后,要做好风险管理,以便避免出现任何问题。 1:散户如何管理仓位 散户在进行期货交易时,要想有效地管理仓位,需要遵循一…

Windwos +vs 2022 编译openssl 1.0.2 库

一 前言 先说 结论&#xff0c;编译64位报错&#xff0c;查了一圈没找到解决方案&#xff0c;最后换了32位的。 使用qt访问web接口&#xff0c;因为是https&#xff0c;没有openssl库会报错 QNetworkReply* reply qobject_cast<QNetworkReply*>(sender());if (reply){…

vivo 互联网自研代码评审 VCR 落地实践

作者&#xff1a;vivo 互联网效能平台团队- Chi Wei 本文介绍了vivo工程效能团队基于 Gitlab、Gerrit等开源工具搭建的VCR平台&#xff0c;代码评审idea插件开发及开发过程中遇到的挑战、困难&#xff0c;并分享了相应的应对策略和优化方案。 代码评审是软件质量保证一种活动&…

5年成为10亿级大单品,海天如何策划黄豆酱的极致产品力?

在当今的调味品市场中&#xff0c;酱料作为一个重要的细分品类&#xff0c;正迅速成为消费者日常饮食中不可或缺的一部分。随着人们对烹饪品质和口味多样化的追求不断提升&#xff0c;酱料市场的前景愈发广阔。而在这片广阔的市场中&#xff0c;海天味业&#xff0c;作为中国调…

ElasticSearch-Windows系统ElasticSearch(ES)的下载及安装

前言 下载ElasticSearch 可以进入ElasticSearch官方下载地址&#xff0c;选择与电脑系统相对应的版本&#xff1b;博主已经上传资源&#xff0c;或者点此直接免费下载&#xff0c;本次演示版本为8.14.1。 注意&#xff1a; Elasticsearch 5 需要 Java 8 以上版本&#xff1b;…

Excel 宏录制与VBA编程 ——VBA编程技巧篇一 (Union方法、Resize方法、Cells方法、UseSelect方法、With用法)

Uniom方法 使用Union方法可以将多个非连续区域连接起来成为一个区域&#xff0c;从而可以实现对多个非连续区域一起进行操作。 Resize方法 使用Range对象的Resize属性调整指定区域的大小&#xff0c;并返回调整大小后的单元格区域。 Cells方法 Cells属性返回一个Range对象。 Us…

基于Java的大学生租房系统

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot框架&#xff0c;MVC模式 工具&#xff1a;Vscode&#xff0c;MySQL&#xff0c;B/S架构…

计算机网络之OSI七层体系结构

目录 1.物理层 1.1物理层组成 1.2物理层功能 1.3物理层服务 1.4物理层标准 1.5物理层接口 2.数据链路层 2.1基于物理层的问题 2.2数据链路层功能 2.3数据链路层服务 2.4数据链路层协议 3.网络层 3.1基于DL层的问题 3.2网络层功能 3.3网络层服务 3.4网络层协议 …

根据肥胖类型选择减调方向收获窈窕身材

我们生活中胖子很多&#xff0c;从胖到瘦的人也不少&#xff0c;但瘦了后对自己身材满意的人却是不多的&#xff0c;很多人瘦了也只是减掉了身上的赘肉而已&#xff0c;大体的身形却是没有变化的&#xff0c;因此&#xff0c;并不感到满意。因为他们本身的形体是固定的&#xf…

拼多多面试总结

文章目录 一面自我介绍提问算法反问结果 二面提问算法反问结果 主管面主管面试准备算法题其他个人提问准备 提问数据库普通索引和覆盖索引的区别索引是什么&#xff1f;索引怎么加快数据库查询的&#xff1f;索引具体怎么实现的&#xff1f;以B树为例&#xff0c;节点放了什么&…

java生成excel,uniapp微信小程序接收excel并打开

java引包&#xff0c;引的是apache.poi <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.3</version></dependency> 写一个测试类&#xff0c;把excel输出到指定路径 public s…