1 什么是根因分析? 在 IT 中,根因分析是确定硬件或软件问题的根本问题原因是什么的过程。 根因分析很重要,因为在许多情况下,有多个可能的问题原因,而且从问题本身来看,原因并不明显。 2 为什么当前根因分析尤其重要 从前,根因分析相对简单,因为 IT 团队需要管理的硬件和软件层较少。物理基础架构和硬件环境之间也几乎没有抽象。 3 充分利用 AIOps 进行根因分析 部分原因是由于现代环境中根因分析的困难, AIOps ( https://sweetcode.io/aiops-ebook-ad ) 变得如此重要。 记住,配置快速变更,根因也会随之变更 在瞬息万变的现代环境中进行根因分析的棘手事情之一是,一次构成根本问题的原因可能在下一时刻改变。 这里的关键要点是,一方面,在执行根因分析时,您应努力将辅助问题与根因区分开,但您不应排除可能存在两个或多个核心潜在问题的可能性。 4.
这篇文章的灵感,来自前几天技术交流群讨论的内容,也是广大测试同学日常接触最多但也最容易忽视的一点:bug根因分析。bug嘛,一说起来大家都熟,毕竟测试这个岗位,最初的时候,被称为“捉虫者”。 要提升质量和效率,最实用和最具性价比的方式,依然是bug根因分析。只有解决了最根本的问题,才能更有底气的完成保质提效的目标。 说到根因分析,很多公司都会有所谓的问题复盘,但遗憾的是,复盘后的改进动作和落地结果,很少有人关注和不断验证。 质量保障和提效比较合理的步骤是这样的: 统计问题,收集数据和证据(日志); 开展根因分析,找到最底层最本质的问题; 思考解决问题的办法,并进行调研论证对比; 找到适合自己团队现状的方案,进行快速落地验证 当然,bug根因分析和质量的持续改进并不仅仅是测试团队的工作,而是应该和其他团队如运维、架构合作,一起来持续的对质量和效率进行改进和提升。
1 背景 本文主要从基于日志、基于trace和基于监控指标这三个方面,初步罗列了微服务架构的异常检测和根因定位的相关论文。 2 基于日志的异常检测与根因定位 2.1 异常检测 Anomaly Detection Using Program Control Flow Graph Mining From Execution Logs LogSed: Anomaly Diagnosis through Mining Time-Weighted Control Flow Graph in Logs. 2.2 根因定位 Localization Faults in Cloud Applications by Mining Causal Dependencies in Logs using Golden Signals. 3 基于trace的异常检测与根因定位 Virtual War Room and Matrix Sketch-Based Streaming Anomaly Detection for Microservice Systems. 3.2 根因定位
8月27日,济南技术沙龙,来自中亦科技的黄远邦(小y)给大家带来的主题是Oracle根因分析案例分享。以扎实的理论基础向大家展示了如何做根因分析,以及根因分析的重要性。 小y虽然是第一次参加济南线下分享活动,但实战经验丰富无比的他没有让大家失望,小y用一个个鲜活的案例和生动的讲解为大家诠释了什么时根因分析,根因分析的好处以及如何做根因分析,大家纷纷表示受益匪浅,期待小y
论文地址:https://hal.inria.fr/hal-02441640/document 基于调用链的拓扑关系, 识别根因 1、Liu P, Xu H, Ouyang Q, et al.
本文将给出基于决策树的智能根因分析方法,针对多维(可变维可达到千万维)找出导致问题的根因。做数据、搞AI一定要基于具体业务,不可脱离业务谈数据、算法,否则将得不偿失。 根因分析大体流程 介绍完决策树的一些基本信息,我们回过头来看一下为什么要选择决策树做根因分析呢?这明明是一个分类模型,和所谓的根因分析怎么挂上钩呢? 根因分析的大体流程: 特征工程:选择合适的数据,并将数据数值化。 模型训练,利用sklearn等工具训练决策树模型。 基于训练结果做根因分析,或做新数据预测分析。 针对分析的结果做校验和优化。 ? 这样的用处: (a)可以用于模型优化; (b)用于根因分析结果链路选取的依据,因为决策树根因分析结果是多条路径,而通常我们选择的根因因素是其中某几条。 根因分析的发散 基于决策树的根因分析大体上就如果上面所述,下面讲一下对于根因分析的发散,也是从不同的角度去分析这个根因,基于交叉熵或相对熵的根因分析。 信息熵: ?
这里我并没有提到根因或根本原因,理由就是我们原本所认为的根因可能往往不止一个,可能会有多个。 这个怎么理解呢? 那这个故障的根因是什么呢? 有的人可能会说是服务器宕机引起的,服务器问题是根因。 有人会说上层数据库没做高可用,数据库问题是根因。 也有人会说业务层面没做功能降级,到时业务不可用,业务架构问题是根因。 你看,就一个简单的服务访问问题,不同角色就会有不同理解。 (这个点后面单独写篇文章分享) 但是如果我们换个角度,不把根因唯一化,而是系统化的看根因,我把它们叫做深层原因,同时把找原因的目标放到改进上去,就完全不一样了。 如果我们能跳出根因这个框框,我们会发现我们可以找到更多的改进点,每个参与者可能都会找到自己应该改进的地方。
当发现指标异常之后,对根因的定位很困难。尤其是涉及多个团队的综合指标,经常需要为了定位根因拉齐后台,客户端,产品各个方向的骨干成员,讨论若干次才能有结论。 本文主要分享在指标的监控和告警分析的一些经验,如何提升告警发生后的根因分析效率。 近期部门在大力推广数字化,各个业务的报表都统一到 Grafana 平台展示。 本文总结了之前在指标异常监控和指标告警分析的一些经验,主要包括三个部分: 第一部分是总结指标监控时遇到的问题,常用的指标展示平台对告警的支持情况,如何合理的设置告警阈值; 第二部分是总结指标异常分析时遇到的问题,对如何提升根因分析效率的思考 告警根因分析 01 告警根因分析的难点 告警只是第一步,更重要的是告警后的分析处理。事实上,业务指标受很多因素影响,当告警发生时,常常把所有相关人员拉到一起分析,定位根因的过程非常耗费人力和时间。 根因分析:目前根因分析已经有一些思路,主要还是告警发生后人工分析。未来计划把人工分析转化为自动分析,当告警发生的时候,直接给出一些分析结论,比如和客户端是否有关,指标的哪个维度是异常的主要原因等等。
Maria,一位电子商务网站的可靠性工程师,收到一条警报,由于高于正常水平的失败率,该网站的结账成功率在过去 30 分钟内下降了 15%。使用传统的监控工具,要花费数小时进行人工分析和故障排查。
环境: OEL 5.7 + Oracle 10g + amdu_X86-64 现象: 我的两套实验环境,一套单实例,一套RAC,操作系统都是OEL 5.7,数据库都是Oracle 10g,上传同样的amdu介质。一个正常,一个报错:
环境: OEL 5.7 + Oracle 10g + amdu_X86-64 现象: 我的两套实验环境,一套单实例,一套RAC,操作系统都是OEL 5.7,数据库都是Oracle 10g,上传同样的amdu介质。一个正常,一个报错: --报错环境: [oracle@rac1-server lib]$ amdu amdu: symbol lookup error: amdu: undefined symbol: hac_kpuhh
当然了实际工作中是基本不会出现这种情况的, 假设真的取了100万数据, 无论是MySQL内存缓冲区的占用,还是网络带宽的消耗都是巨大的。
随着人工智能技术的发展,AI辅助测试分析为缺陷预测和根因定位提供了新的可能性。 提升开发质量:通过分析根因,帮助开发团队改进代码质量和开发流程 积累经验知识:将根因分析结果转化为组织知识,提升整体能力 1.3 传统方法的局限性 传统的缺陷预测和根因定位方法主要依赖人工经验和简单的统计分析 第三章:智能根因定位技术 3.1 传统根因定位的挑战 传统的根因定位主要依赖测试工程师的经验和手动排查,面临以下挑战: 信息不完整:缺乏足够的上下文信息,难以准确定位根因 复杂度高:现代软件系统复杂度高 主要方法包括: 数据收集 → 异常检测 → 模式识别 → 因果分析 → 根因定位 基于日志的根因定位:分析系统日志,识别异常模式和关联关系 基于代码的根因定位:分析代码变更和历史缺陷,识别高风险代码片段 基于测试数据的根因定位:分析测试执行数据,识别失败模式和相关性 基于服务依赖的根因定位:分析微服务架构中的依赖关系,识别故障传播路径 基于用户行为的根因定位:分析用户行为数据,识别导致缺陷的特定场景
根因猜想 大面积的崩盘, 肯定是基建发生了问题, 基础不牢,地动山摇。 据内部人员小道消息:服务发现/注册中心 发生了故障。
在现代数据库系统中,如何有效地分析日志、快速定位故障根因是保障系统稳定性和性能的关键任务。 利用自动诊断存储库中的健康监控数据,进一步分析系统健康趋势和异常根因。2. Trace日志和黑匣子数据的深度解析Trace日志详细记录数据库各个线程、进程的运行状态及调用栈。 快速定位故障根因的技术建议建立系统化的日志收集与汇总机制:统一采集数据库主备实例、节点、集群服务(YCS)、文件系统(YFS)等关键日志,保证日志时间线准确,方便跨组件关联分析。 分析主备切换和选主日志:详细审查主备切换时序和自动选主过程的投票与心跳日志,识别是否有因选主机制导致的延迟或脑裂。 YashanDB日志体系结构和核心技术要点,揭示了如何通过告警日志、Trace日志、redo日志、备份恢复日志及主备切换日志等多维度日志数据,结合数据库内部线程状态及事务控制信息,实现故障的快速定位和根因分析
QAPM原有Hprof分析是基于开源项目LeakCanary的shark Andoroid Extension,这里仅有针对安卓内存泄露部分,同时包含了一个极其简陋的内存触顶分析模块,只能根据一定规则获取极少的信息。为了适应更多针对内存触顶的新分析需求:如图片重复,图片超尺寸,字符串重复,对象重复分析与问题引用链聚类等更复杂的Hprof分析,包括获取更多问题信息时,原方案就显得力不从心,因此重构成了唯一的选择。
整体上可以被分为六步,分别是: 发现问题、界定问题、根因探究、制定策略、策略评估、做出决策。 其实这六步,归类起来也可以算作黄金期法则:why、how、what。 前三步其实都属于why的部分。 甚至将解决方案当做问题本身,这就是缺少了前两步的根因追踪和问题定义。 而高手,往往通过不断的追问why,退回到第一步重新定义问题,进而在根源上解决问题。 这就是高手和普通人的区别。
这里写一篇文章,详细介绍 log4j2 RCE 漏洞复现步骤以及根因,纯粹是以学习为目的。 log4j2 RCE 漏洞总体来说是通过 JNDI 注入来完成的,具体的有 RMI 协议的方式和 LDAP 协议等不同方式,这里以 RMI 方式为例子做详细复现步骤和根因分析(不了解 JNDI/RMI/
分布式存储是支撑业务数据流转的核心底座,其稳定性直接决定了整个系统的抗风险能力。某政务云平台采用Ceph作为统一存储解决方案,为电子政务、民生服务等核心系统提供块存储与对象存储服务,却在一次常规集群扩容后遭遇了严重的数据同步异常——部分存储池的PG(Placement Group)状态持续处于“degraded”,数据副本同步停滞,触发了平台最高级别的灾备预警。这起故障并非简单的硬件或配置问题,而是Ceph底层CRUSH算法、OSD(Object Storage Daemon)调度机制与云原生环境弹性特征碰撞产生的复杂问题,其排查与恢复过程,为理解分布式存储在云原生场景下的运维难点提供了关键参考。
直达原文:智能运维可观测:告警根因分析的智能跃迁01.引言在分布式与云原生架构普及的当下,企业IT系统的复杂性指数级攀升,传统告警分析模式面临严峻挑战。 以嘉为蓝鲸的小鲸观测助手为例,其通过Embedding向量化、日志聚类与知识图谱拓扑推理的协同创新,重构了可观测性场景的根因定位范式。 例如当数据库响应延迟告警触发时,系统自动关联日志中的查询异常模式、链路中的服务调用堆栈及主机资源指标,生成根因报告并推荐处置方案,将平均定位时间缩短60%以上。 以嘉为蓝鲸小鲸观测助手为代表的新一代平台,通过Embed向量化、日志聚类与知识图谱的深度协同,不仅实现了故障根因的智能推演,更推动可观测性向“预测性运维”进化。