应用逻辑故障的问题定位与“故障传染”场景类似,如何在大量病态的功能中找到根因功能,并对功能进行降级等恢复是难点。 3)测试复现 复杂系统的故障定位必然是一个跨团队协同的过程,测试复现是一个协同定位的解决方案。从岗位看,测试与bug打交道的机会最多,对于逻辑、数据引发的故障更敏感。 性能管理,AIOps等场景的工具应用,将有利于研发团队在故障定位环节,提升代码分析能力。 2.定位工具: 1)日志 对于运维而言,日志是运维了解硬件及软件内部逻辑的一面窗口。 3)监控 以往,监控往往被定位为“监测”的角色,即只负责发现异常,将报警发出来即尽到监控职责。 对于多个监控告警进行告警事件的收敛管理,基于CMDB关系数据进行初步的定位。 利用监控数据与AIOps算法,构建智能化的故障定位场景应用,增加故障定位的能力。
故障恢复指恢复业务连续性的应急操作,很多故障是在不断尝试验证解决恢复的动作,所以故障恢复环节与故障定位环节有一定的交叠,或在这两个环节之间不断试错的循环,即故障恢复操作可能和故障诊断是同时,也可能是诊断之后或诊断之前 1.已知预案下的恢复三把斧 在故障管理过程中,通常大部分故障有一些明确的故障恢复预案,比如基础设施、服务器、网络设备、网络线路,以及应用系统层中关于服务可用性等故障因素,以及基于历史故障经验积累的方案。 另外,对于应用服务拆分、逻辑解耦、减少总线依赖、增加异常访问机制、必要的缓存、数据库层面的分库分表、前端限流与削峰、服务降级等架构优化,也能提升故障恢复能力。 3.临时决断恢复 虽然有不少故障可以基于已知预案、架构高可用与可靠性方面的设计提升故障恢复的时间,但是随着运维复杂性以及企业以客户体验为中心的建设,运维对可用性的要求在服务层的业务连续性基础上,增加了业务功能逻辑 结束 注:“3.4 事中处置”另外3个环节内容链接: 1.故障发现、故障响应 2.故障定位
为减少人力并实现母机故障的自动化定位,本文尝试利用机器学习算法,通过对历史故障母机的日志数据学习,训练模型实现自动化分析定位母机故障原因。 背景 对于每一单母机故障我们都需要定位出背后真实的故障原因,以便对相应的部件进行更换以及统计各种部件故障率的情况,因此故障定位和分析消耗的人力也越来越多。 目标 1、对母机宕机故障进行自动化的分析,准确定位故障原因; 2、当故障分类准确率达到足够准确之后,能够不需要人工参与,实现自动化结单; 3、实时流式处理母机的各种数据,实现部分故障的预测。 数据筛选 1)查看三类日志,分析是否每一种日志对故障定位都有存价值。剔除无价值的日志; 2)根据业务需求,选择特定的故障类别。 3)Tf-idf(Term Frequency-Inverse Document Frequency, 词频-逆文件频率),是应用最广泛的权值计算方法。
在面对故障的时候,我也有类似的感觉:不怕出故障,就怕你不知道故障的原因,故障却隔三差五的找上门来。 close 0.49 0.000381 2 238 chdir 0.35 0.000271 3 在继续定位故障原因前,我们先通过「man brk」来查询一下它的含义: brk() sets the end of the data segment to the value specified by 3119 24 total 显而易见,「brk」已经不见了,取而代之的是「recvfrom」和「accept」,不过这些操作本来就是很耗时的,所以可以定位 「brk」就是故障的原因。
一 OSPF邻居down故障原因 本类故障的常见原因主要包括: BFD故障; 对端设备故障; CPU利用率过高; 链路故障; 接口没有Up; 两端IP地址不在同一网段; RouterID配置冲突; 两端区域类型配置不一致; 两端OSPF参数配置不一致; 二 故障定位步骤 1、通过日志查看OSPF邻居Down的原因 执行display logbuffer size 此时,可以执行display interface [ interface-type [ interface-number ] ]命令查看接口状态,排查接口故障。 2、检查链路是否故障 请执行ping命令和在接口视图下执行display this interface命令,检查设备链路是否故障(包括传输设备故障)。如果链路正常,请执行步骤3。 3、检查CPU利用率是否过高 请执行display cpu命令检查故障设备的CPU利用率是否过高。如果CPU利用率过高会导致OSPF无法正常收发协议报文从而导致邻居振荡。
这是个非常好的问题,这里我们就要区分两个经常挂在嘴边,但是确很少有人去能理解透彻的概念:定界和定位。 我们讲故障时可以不用定位,指的是在故障时,不用去定位故障原因是什么,但是不能不做定界。 重要的事情讲三遍: 定界和定位是两回事。 定界和定位是两回事。 定界和定位是两回事。 定界不做,那接下来的恢复就无从谈起了。 举个简单的场景案例: 当一次故障发生,业务指标受影响,硬件层面、网络层面、数据库层面,分布式组件层面、存储层面、应用层面,可能都会有告警。 如果是应用内存出问题,也没必要去打个堆栈,然后分析下哪个对象没释放,那段代码逻辑是怎么写的,为什么会占用这么多内存。能先重启就重启,如果刚才做了发布就先回滚等等。 所以,定界的能力,其实比定位更重要,定界必须要高效,定位在绝大多数情况下是可以在事后做的。 一定一定要区分开看,不能混为一谈。
每一位网络工程师或专家都有自己的经验和必备工具,能让他们快速定位网络故障。以下的这些工具,是否是你的工具箱中的选项。 1. Nmap Nmap是开源工具,它被称作网络故障排除的“瑞士军刀”。 3. tcpdump tcpdump是网络专家必备的故障排除工具。如果可以有效地使用它,那么可以在不影响无关应用程序的情况下快速查明网络问题。 4. Ping Ping是快速排除网络问题的最基础工具。 它是下一代的3、4、7网络层,利用基于C的代理实现零信任安全性,证据链审计合规性,目标细分和低级报告,并且它是开源工具。如果试图找出“服务网格”的用例,可进行一些研究。 11. Batfish 强烈建议你将网络配置分析添加到故障排除工具包中。 更好的是,可以使用Batfish或类似的验证工具来确保网络故障不会发生。 15. Fiddler 当考虑网络故障工具时,现在可用的SaaS很多。
一 BGP邻居无法建立故障原因 本类故障的常见原因主要包括: BGP报文转发不通 ACL过滤了TCP的179端口 邻居的Router ID冲突 配置的邻居的AS号错误 用Loopback 用Loopback口建立EBGP邻居未配置peer ebgp-max-hop peer valid-ttl-hops配置错误 对端配置了peer ignore 两端的地址族不匹配 二 故障定位步骤 如果不能Ping通,请处理Ping不通问题排除链路传输的故障问题。 2、检查是否配置ACL禁止TCP的179端口 在两端执行display acl all命令查看是否禁止TCP的179端口。 如果没有禁止TCP的179端口的ACL,请执行步骤3。 3、检查邻居的Router ID是否冲突 在两端分别查看无法建立的BGP邻居的情况,例如ipv4单播邻居无法建立可以执行display bgp peer命令,查看Router ID是否冲突。
在日常的计算机使用过程中,硬件故障是无法避免的问题。但如何快速、准确地定位到问题所在,是每个技术爱好者和专业人士都应该掌握的技能。 在这篇博文中,我将带大家深入探讨硬件故障的常见原因、诊断工具和解决策略。 我将结合实际案例,帮助大家更深入地理解和应用。 引言 硬件是计算机的基础,但随着时间的流逝和使用的增加,硬件的老化和故障是不可避免的。对于IT从业者和技术爱好者来说,快速、准确地定位硬件故障,不仅可以节省时间,还可以避免不必要的损失。 正文 1. 常见的硬件故障及其原因 1.1 硬盘故障 老化:长时间使用导致的性能下降。 物理损坏:如摔打、高温等。 软件冲突:如病毒、恶意软件或者软件冲突导致的硬盘故障。 3. 解决策略 3.1 备份数据 在进行任何硬件检测或维修之前,都应该先备份重要的数据。 3.2 定期维护 清理内部灰尘,更新驱动和固件,确保硬件在良好的工作环境中。
在下面的描述中,ZK指的是zookeeper,Watch丢通知故障简称为丢消息,因个人水平的原因,文章中定位出的原因,未必是真实的原因,仅供参考。 ZK一共3个节点,按照IP最后的数字,分别命名为144、227、229。故事发生在agent和三台ZK服务器之间。 定位过程 首先简单介绍代码。 针对这个故障,考虑到在网络故障的短暂时间内存在丢消息的可能,因此解决方案比较直接: func (m *McAgent) HandleEvent(ev zk.Event) { switch 从故障Agent的日志看,没有任何异常,也没有任何ZK连接变化相关的日志信息。去ZK节点上捞取日志,通过一系列检索过程,发现了故障场景的共性。
2 收集日志信息 当设备出现故障时,收集设备日志信息,有助于用户了解设备运行过程中发生的情况,定位故障点。 日志信息主要记录用户操作、系统故障、系统安全等信息,包括用户日志和诊断日志。
,也还是会有 4 查询,前 3 次是多余的; resolv.png 优化: Pod dnsConfig 配置较小的 ndots; 集群内部通过 service 访问时拼全后缀(namespaces.svc.cluster.local cache 优化: 改造业务,避免每次请求都查dns,比如 java 设置 networkaddress.cache.ttl ; 部署 NodeLocal DNS 作为本地 DNS 缓存 常见故障定位 2、查看日志; 使用 kubectl logs 查看容器日志 (-p 可看上次退出日志): $ kubectl logs {podname} -n {namespaces} 3、查看资源配置; 使用 controller-manager 异常; CNI 网络错误; 程序启动慢被存活检查 kill; 7、Pod 发生 Crash; 可能原因: cgroup OOM / 系统 OOM ; DNS 故障导致解析失败 端口区间 (30000-32768); 外部服务防火墙没有放开容器网段 (如 CDB、自建 DNS); DNS 异常; 高负载; 进程没有监听端口; 12、节点状态异常; 可能原因: 节点高负载; 磁盘故障
3 Wireshark:HTTP 响应分析 借助 Wireshark 的“显示分组字节”功能,很容易就能看到 HTTP 的响应内容。 例如1:从服务端下载文件 ?
作者:vivo 互联网服务器团队- Liu Xin、Yu Dan本文基于故障定位项目的实践,围绕根因定位算法的原理进行展开介绍。 2.1 主动查询场景当用户反馈某个应用很慢或超时,我们第一反应可能是查看对应服务的响应时间,并定位出造成问题的原因,通常这两个步骤是分别进行,需要用到一系列的监控工具,费时费力。 如果使用故障定位平台,只需从vivo的paas平台上进入故障定位首页,找到故障服务和故障时间,剩下的事情就交给系统完成。 2.3 分析效果通过以上两种方式进入故障定位平台后,首先看到的是故障现场,下图表示服务A的平均响应时间突增。 但没有覆盖自身原因造成的故障(如GC、变更、机器问题等);3、分析结果只能提供大概的线索,最后一公里还是需要人工介入;4、故障定位算是AI领域的项目,开发方式与传统的敏捷开发有一定的区别:角色职责:领域专家
故障类型 ---- 线上的jvm故障基本可以分为两大类: CPU____占用过高。 内存问题,通常可以理解为gc的问题,因为java的内存用gc进行管理。 故障排查兵器谱 ---- 命令行工具 jps等工具都是对tools.jar类的包装,使用起来方便简单.在下边的故障排查中会用到我们这里提到的工具,大家平时应该熟记于心. top: top命令用于实时显示 1. top命令定位到cpu消耗最高的进程,并记住进程pid 通过 top -Hp pid 找到问题线程,记住线程 tid 2. 3. 通过转化的16进制数字从堆栈信息中找到对应的线程堆栈. ,从而定位代码。
主要是不符合产品的需求逻辑,可能会影响用户体验 线上故障:这个阶段是最严重的,对公司的收益、用户体验都会造成影响,主要为服务不可用等 在本文的示例中,我们针对的第三个阶段,即线上故障进行定位和分析的一种方式 ,希望借助本文,能够对你的故障定位能力有一定的帮助。 原因基本确定,现在我们开始定位问题。 ll info -rw-r--r-- 1 root root 58369282 Jan 28 10:14 info 为了快速定位错误点,我们抓取跟错误点地址3ab9a75f62相关的命令(为了获取上下文 75f62 输出如下: 3ab9a75ec8: 0f 85 94 00 00 00 jne 3ab9a75f62 <malloc_consolidate+0xe2> 3ab9a75f62
那么分析问题需要有一定的技术经验积累,并且有些问题涉及到的领域非常广,才能定位到问题。所以,分析问题和踩坑是非常锻炼一个人的成长和提升自我能力。 如果我们有一套好的分析工具,那将是事半功倍,能够帮助大家快速定位问题,节省大家很多时间做更深入的事情。 2. 说明 本篇文章主要介绍各种问题定位的工具以及会结合案例分析问题。 3. CPU 4.1 说明 针对应用程序,我们通常关注的是内核CPU调度器功能和性能。 如果大量时间花在CPU上,对CPU的剖析能够迅速解释原因;如果系统时间大量处于off-cpu状态,定位问题就会费时很多。 9.6 性能回退-红蓝差分火焰图 你能快速定位CPU性能回退的问题么? 如果你的工作环境非常复杂且变化快速,那么使用现有的工具是来定位这类问题是很具有挑战性的。
接口出方向有突发流量导致丢包的组网示意图 二 故障现象 设备上产生QOS/4/hwXQoSPacketsDropInterfaceAlarm_active的告警信息,提示Eth-Trunk的两个成员接口均有丢包 三 故障分析 1、任意视图下执行命令display interface interface-type interface-number查看Eth-Trunk接口及两个成员接口的丢包情况和出方向的带宽利用率 3、通过测试仪器Wireshark,设置Interval为1ms,监控流量。发现有突发流量超过了最大带宽。 ?
使用网络管理工具使用网络管理工具如 Nagios、Zabbix 等,进行更全面的网络监控和故障排除。
仪表具有绝缘故障预警、故障报警、事件记录等多种功能,可用于矿井、 玻璃厂、电炉和试验设备、冶金厂、化工厂、爆炸危险场所、计算机中心以及应急电源等场所的 IT 配电系统 中,实时监测 IT 配电系统对地的绝缘状况 ,当发生绝缘故障时,及时报警,提醒工作人员排查故障。 ,实时监控 IT 系统的运 行状况;2.4 具有故障事件记录功能,能够记录故障发生的时间和故障类型,方便操作人员查询分析系统运行状况, 及时消除故障;2.5 适用于交流、直流以及交直流混合 IT 系统的绝缘监测 3.型号说明说明:AIM 表示安科瑞绝缘监测装置 T 表示工业场合 300 表示 300 型4.技术参数5.参考标准■ IEC 61557-8 《交流 1000V 和直流 1500V 以下低压配电系统电气安全 系统用绝缘监测装置》■ IEC 61326-2-4 《测量、控制和实验室用的电设备 电磁兼容性要求 第 24 部分:特殊要求 符合 IEC 61557-8 的绝缘监控装置和符合 IEC 61557-9 的绝缘故障定位设备的试验配置