故障定位需要什么样的能力

复杂运维场景下,如何实现分钟级的故障根因定位 作者介绍 熊亚军 灵犀技术总监,原百度系统部高级项目经理,负责百度IT基础设施监控团队,其带领的团队经历了百度服务器规模迈入几十万量级,网络架构数次演进,对服务器尤其是网络层的监控和运维自动化智能化有丰富的经验。 开篇:在超级互联网公司,随着服务器规模都早早迈过 10 万台量级,加之业务模式的多样性和 IT 架构的云化迁移,其 IT 运维团队面临的挑战与日俱增,常规的系统和经验都需要不 阅读详情

运维自动化系统中最难做的部分就是故障定位,目前大多数做智能化运维的企业都使用异常检测算法来定位故障。实际上异常检测算法能够发现异常现象,很难真正的实现对故障的定位。纯数学的算法往往只能发现某些数据是异常的,而这个“异常发现”也是要依靠参数的,比如我们设定95%的数据是正常的,5%是异常的。而实际上故障发生不会像数学那样精准,同一类故障在故障持续的时间内的数据特征都会有所不同,而同一类故障在两次发生时,其在数据上的差异也可能很大。

虽然对于智能系统来说,做故障定位目前还只是处于探索阶段,不过运维人员做故障定位是拥有丰富的传统的了。我这些年参加的各类运维项目有数千个了,我自己总结了一下,人类进行故障分析时的一些分析过程,这些过程如果要使用算法来实现,也大多数是可行的。

图片

根据故障的表象判断可能的诊断路径是一个运维专家所必须具备的能力,这些能力往往是通过大量的运维案例不断地积累下来的。这也是专家有别于普通运维人员的地方。初级的专家往往能够对已知的故障有敏锐的发现能力,可以根据自己遇到过的故障现象快速找到问题的根因。更为资深的专家能够从一些普适性的故障现象中通过系统的内在原理猜测出某个现象背后可能的原因,因此这些资深专家能够更快速的发现未知故障可能的原因。计算机系统是按照某种需要而经过精密设计的系统,不是混沌系统,因此如果完全依靠数学算法去做异常检测来发现问题,实际上是不够科学的。某个现象关联的因素,每个指标意味着的现象,每个等待事件产生的因素,实际上并不是混沌和无序的,是有一定的关系的,如果我们能够把这些因素都找出来,或者能够根据当前的一些特殊系统特征发现出来,那么对于后续的问题定位十分有益。

这部分工作如果需要用自动化系统来做,那么构建这些关系的运维知识图谱是十分有效的。如果能够把专家脑子里的经验、以往经历过的运维案例都做出完善的梳理与分析,那么就可以构建起足以支撑今后运维分析的运维知识图谱了。十分可惜的是,一方面我们的专家没有梳理运维知识图谱的经验,一方面某个单一企业保留下来的足以构建运维知识图谱的案例数据过少,因此对于一个单一的企业来说,要构建这个运维知识图谱,确实困难不小。

准确的数据采集实际上也是需要依靠运维知识的,如果你无法理解某个指标的含义,那么有可能你会连数据采集都做不好。可能有些朋友不大服气,不就是一个数据采集吗,这有什么难的。如果我们要做故障分析,其中需要使用到CPU资源的使用情况,我们该如何采集数据呢?找某段时间里CPU的使用率的最高值还是平均值?如果出现CPU使用率100%就一定有问题吗?实际上并不是这么简单的,CPU突然出现的尖峰实际上大多数是无害的,不一定会对我们的系统产生不利的影响。只有长期CPU使用率都处于极高位,此时CPU才有可能存在资源不足的瓶颈,影响系统的性能。此时我们还需要观察LOAD这个指标,只有存在长期的LOAD远大于CPU线程数的时候,CPU的瓶颈才特别严重。而实际上,我们系统出现故障的时候,往往CPU使用率并不一定高,那么我们怎么判断CPU是否和故障有关呢?这就需要用到异常检测了,在大多数情况下,我们需要发现CPU存在的异常,而不是CPU使用率过高。

数据分析是人工分析工作中最重要也是最无聊的工作,此时不仅仅需要经验和能力,认真扎实的态度往往是最为重要的。哪怕水平再高的专家,如果不能踏踏实实地分析数据,那么也可能会漏掉十分重要的数据,从而走上错误的路径。这部分工作最耗时,最无聊,也最重要。实际上也是最容易用自动化的手段来实现的,目前在数据处理方面的算法十分丰富,通过自动化分析的方法来辅助故障定位,实际上技术十分成熟,实践效果也不错。

问题分析实际上是通过异常发现、知识发现、故障收敛等方式最终将问题与根因进行对应的过程。哪怕最为资深的运维专家也不可能在脑子里保留所有的运维知识,因此根据故障表象与分析发现的数据去搜索知识库,找到可能存在的根因是定位问题中十分重要的过程之一。Oracle的Metalink是一个十分优秀的知识库,我经常通过关键字搜索找到相关的DOC,然后打开阅读,与我发现的现象进行对应,如果大部分内容都一致,则问题可能的根因就很可能找到了。再根据文档中对问题表象的更为详细的描述,对问题现象进行再确认,往往就能够找出最适合的根因了。这种故障定位大多数是准确的,当然也可能存在出现偏差的情况。这部分故障定位收敛的过程也需要有知识做支撑,如果我们要做成自动化系统,那么这部分的知识也需要通过知识图谱来进行归纳和描述。这部分工作比工作开始时的知识图谱建设更为复杂,目前大多数情况下,也还仅仅能够做到辅助定位,通过自动化的手段告诉运维人员,可能的原因是什么,仅有少部分情况,可以直接确定问题的根因。

说到根因,以前有个朋友和我说,你们费那个劲干嘛,99%的数据库问题都是SQL引起的,搞好SQL优化不就行了。这句话也有一定的道理,不跑SQL系统都是好好的,跑了SQL就有问题了,SQL一定是根因。不过实际上我们面临的运维环境十分复杂,如果系统中的SQL总是能够被认真的优化,那么运维就轻松多了,而实际上DBA与写SQL的研发人员,很多时候还是要相互体谅的,能够通过运维解决的问题,还是先通过运维来解决吧。

作者:白鳝

微服务系统异常检测和根因定位 方法综述 CSUR22 - Anomaly Detection and Failure Root Cause Analysis in (Micro) Service-Based Cloud Applications: A Survey 基于(微)服务的云应用中的异常检测与故障根源分析:综述 总结 到目前(2022),学术界故障检测和根因定位方法的综述 当前的异常检测技术,都需要一个baseline去构建预知识。当线上执行差距过大(并发压力、环境、基础测试集构建错误等),会造成检测不准确 根因定位技术:各有千.. 阅读详情

相关推荐

可观测领域的王者Dynatrace的故障定位能力验证

测试系统EasyShopping,是一个包含17个业务服务的复杂微服务系统,部署在k8s平台上。DataBuff的One-AgentDynatrace的One-Agent。

weixin_43932886的博客 904

从第一性原理出发,探索如何做故障的根因定位

在微服务和云原生环境下进行故障定位通常会面临以下困难://文章中,“可能”二字用的比较多,建议优化成通常或其他的词语分布式系统复杂性:微服务架构中,系统被拆分为多个小型服务,每个服务通常运行在不同的容器或虚拟机中,甚至可能部署在不同的云平台上。当一个问题发生时,需要跨多个服务、多个主机或者多个云服务来追踪问题的根源,这增加了故障定位的复杂性服务间依赖性:微服务架构中,各个服务之间通常通过API或消息传递进行通信。如果某个服务出现问题,可能会影响到其它依赖的服务,造成级联故障。

乘云数字DATABUFF官方博客 1100

利用Sigrity的SPEED2000进行时域电源噪声分析

SPEED2000进行时域电源噪声分析

ZHENGSA的博客 3620

52 | 故障排查与根因分析

今天我们聊的是线上故障的排查与根因分析。从理论上讲,我们将故障排查过程定义为反复采用“假设 - 验证排除”手段的过程:针对某系统的一些观察结果和对该系统运行机制的理论认知,我们不断提出一个造成系统问题的假设,进而针对这些假设进行测试和排除。为了有效排查故障,日志系统在里面起到了关键作用。定位问题本身就是 “假设 - 验证排除 - 再假设 - 再验证排除” 这样的循环,直至最后定位到问题。所以基于时序数据的日志系统,往往查询支持非常多样化的过滤条件,功能非常强大。

qq_37756660的博客 1882

C# WinForms实战:5分钟用ScottPlot打造专业级示波器界面(附完整代码)

本文详细介绍了如何在C# WinForms应用中,利用ScottPlot.WinForms库快速构建一个专业级的软件示波器界面。通过从环境配置、静态波形绘制到动态数据实时更新的完整实战演示,帮助开发者高效实现高性能的波形显示功能,适用于工业监控、信号分析等多种场景。

weixin_29198045的博客 831

当OTN网络遭遇LOS告警:5个运维老手才知道的故障定位技巧(含CA动作对照表)

本文深入解析OTN网络中LOS告警的实战定位技巧,涵盖光功率深度诊断、模块差异分析及核心的CA动作机制。通过逆向追踪告警流与对照速查表,帮助运维人员快速锁定故障段落,区分硬软故障,并掌握系统健康度评估方法,从而提升排障效率与网络稳定性。

weixin_29266007的博客 552

17 个运维常用指标,90%人都不知道!

在当今竞争激烈的商业环境中,运维指标对企业的重要性不言而喻。这些指标不仅帮助企业监控和优化其IT基础设施的性能,确保服务的连续性和可靠性,而且还提供了关键的洞察,使企业能够识别潜在的问题并迅速响应。通过精确地跟踪系统的稳定性、响应时间、故障率等关键性能指标,企业能够提高客户满意度,降低运营成本,并最终提升市场竞争力。此外,良好的运维管理还能助力企业更好地遵守法规要求,避免数据泄露和其他安全风险,保护企业声誉和客户信任。因此,投资于运维指标的监控和改进是企业持续成功的关键因素。

qq_24442273的博客 1618

汇川Easy 301 和MCGS进行Modbus RTU通讯(485)浮点数读取和写入

4DF0001对应寄存器D0,4DF0003对应寄存器D2。注意:要选com2口,com1口是232通讯。

qq_61916672的博客 2904

【故障定位系列】基于DeepSeek的故障定位大揭秘

引入DeepSeek后,大模型承担更多智能化工作,我们只需要提供数据源即可。

乘云数字DATABUFF官方博客 1139

FineReport FCP模拟题五

新建决策报表,设置 移动端 格式,采用绝对布局。数据来源:FRDemo中的订单表/雇员表。

Davina_yu的博客 725

OpenClaw终于有了图形界面,一键安装使用你的24小时AI 研究助手!

ClawX是连接强大 AI 智能体与普通用户之间的桥梁。基于OpenClaw构建,它将命令行式的 AI 编排转变为易用、美观的桌面体验——无需使用终端。无论是自动化工作流、连接通讯软件,还是调度智能定时任务,ClawX 都能提供高效易用的图形界面,帮助你充分发挥 AI 智能体的能力。ClawX 预置了最佳实践的模型供应商配置,原生支持 Windows 平台以及多语言设置。当然,你也可以通过设置 → 高级 → 开发者模式来进行精细的高级配置。

Maynor的博客 3392

【故障定位】基于粒子群优化算法的故障定位及故障区段研究【IEEE33节点】 附Matlab代码

电网作为现代社会赖以生存的能源动脉,其安全可靠运行至关重要。然而,电网规模日益庞大,结构日趋复杂,使得故障发生概率和影响范围不断增大。因此,快速准确地定位故障并隔离故障区段,成为确保电网稳定运行,降低经济损失的关键技术。传统的故障定位方法面临计算量大、收敛速度慢、容易陷入局部最优等问题,难以满足现代电网对故障定位的时效性和准确性要求。为了解决上述问题,本文将探讨基于粒子群优化(PSO)算法的故障定位方法,并以IEEE33节点系统为例,研究其在故障定位及故障区段识别中的应用。

matlab_dingdang的博客 1720

【华为OD机试真题 2025B卷】662、静态扫描 | 机试真题+思路参考+代码解析(C++、Java、Py)(B卷复用)

【华为OD机试真题 2025B卷】662、静态扫描 | 机试真题+思路参考+代码解析(C++、Java、Py)(B卷复用) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2024e卷,od机试,2024E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2024华为od,如何备战华为od

KJ.JK 5397

【故障定位】基于多元宇宙算法的主动配电网故障定位方法研究附Matlab代码

主动配电网(Active Distribution Network, ADN)因大量分布式电源(Distributed Generation, DG)的接入,呈现出结构复杂、潮流双向流动、运行模式多变的特性,传统故障定位方法面临灵敏度不足、容错性差等挑战。多元宇宙算法(Multi-Verse Optimizer, MVO)作为一种新兴的群智能优化算法,模拟宇宙中黑洞、白洞和虫洞的相互作用机制,具有全局搜索能力强、收敛速度快、参数设置少的优势,为主动配电网故障定位提供了创新解决方案。

matlab_dingdang的博客 658

C#串口通信从入门到精通(1)——硬件接线

RS-232接口一般都是9针的,有公母头(针头和孔头),为了便有理解以下都称为针头和孔头,针头就是露出来的针,孔头就是9个孔,总共使用3条线进行通信,一条用于发送,一条用于接收,另外一根是GND地线,由于线路的功能是永久性的,设置连接时,必须确保一个节点的发送线与另一个节点的接收线相连,反之亦然,RxD(PC的接收线)连接到TxD(传感器电子设备的发送线),TxD(PC的发送线)连接到RxD(传感器电子设备的发送线)。两条线路的电平都是相对于GND的。因此,GND也必须连接,但不能将GND与屏蔽连接。

qq_34059233的博客 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

一款体验故障定位的神器

故障树的最后一个节点,即为根因节点,根因节点的第一个问题即为根本原因,可以验证该原因和注入的故障是否匹配,如果匹配则代表DataBuff平台定位成功。很多时候,当故障发生时,监测平台会触发大量的关联事件(比如100个事件),因此需要一定的收敛能力,对这些事件进行聚合并形成有效告警,降低对用户的干扰。我们开放了大量在实际生产中常见的故障场景,只需一键注入故障,就能在3分钟之内获得一个详尽可解释的故障根因分析结果。,分析粒度深入到服务接口,连接池,函数堆栈,SQL语句,进程,系统资源等级别。

乒乓狂魔的专栏 1857

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

上一篇: 从一个案例看自动化运维工具的作用
下一篇: 集中式数据库-用KFED REPAIRE快速修复ASM磁盘头
DBAIOps社区
博客等级 码龄3年 970粉丝 107原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值