运维故障处理思路
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
事件/故障处理应该要有什么思路
导读:
在讲解事件、故障处理思路前,我先讲一个故障场景(以呼叫中心系统作为一例子):
业务人员反映呼叫中心系统运行缓慢,部份电话在自助语言环节系统处理超时,话务转人工座席,人工座席出现爆线情况。
运维人员开始忙活了,查资源使用情况、查服务是否正常、查日志是否报错、查交易量还有没有……时间不知不觉的在敲键盘、敲键盘、敲键盘中过去,但是原因还未定位。
经理过来了解情况:“系统恢复了吗?”、“故障影响是什么?”、“交易中断了吗?”……
运维人员赶紧敲键盘,写sql,看交易量;敲键盘,写命令,看系统资源、情况……
最终,定位到问题原因是其中一个功能没有控制返回数量,导致内存泄露。
针对这个故障,业务希望运维能否更快的解决故障的恢复,经理希望制定优化呼叫中心故障处理流程,做了以下几件事:
1.优先故障处理过程的时间——”能通过鼠标完成的工作,不要用键盘“
2.提前发现故障,加强监控——“技术早于业务发现问题,监控不仅是报
警,还要协助故障定位”
3.完善故障应急方案——“应急方案是最新的、准确的、简单明了的”
4.长远目标:故障自愈——”能固化的操作自动化,能机器做的让机器做
“
下面将从故障常见的处理方法开始介绍,再从故障前的准备工作(完善监控、制定应急方案等方式)来解决经理提出的问题,并提出未来解决故障的想法。
1、常见的方法:
1)确定故障现象并初判问题影响
在处理故障前,运维人员首先要知道故障现象,故障现象直接决定故障应急方案的制定,这依赖于运维人员需要对应用系统的整体功能有一定的熟悉程度。
确认了故障现象后,才能指导运维人员初判断故障影响。
2)应急恢复
运维最基本的指标就是系统可用性,应急恢复的时效性是系统可用性的关键指标。
有了上述故障现象与影响的判断后,就可以制定故障应急操作,故障应急有很多,比如:
•服务整体性能下降或异常,可以考虑重启服务;
•应用做过变更,可以考虑是否需要回切变更;
•资源不足,可以考虑应急扩容;
•应用性能问题,可以考虑调整应用参数、日志参数;
•数据库繁忙,可以考虑通过数据库快照分析,优化SQL;
•应用功能设计有误,可以考虑紧急关闭功能菜单;
•还有很多……
另外,需要补充的是,在故障应急前,在有条件的情况需要保存当前系统场景,比如在杀进程前,可以先抓个CORE文件或数据库快照文件。
3)快速定位故障原因
•是否为偶发性、是否可重现
故障现象是否可以重现,对于快速解决问题很重要,能重现说明总会有办法或工具帮助我们定位到问题原因,而且能重现的故障往往可能是服务异常、变更等工作导致的问题。
但,如果故障是偶发性的,是有极小概率出现的,则比较难排查,这依赖于系统是否有足够的故障期间的现场信息来决定是否可以定位到总是原因。
•是否进行过相关变更
大部份故障是由于变更导致,确定故障现象后,如果有应的变更,有助于从变更角度出现分析是否是变更引起,进而快速定位故障并准备好回切等应急方案。
•是否可缩小范围
一方面应用系统提倡解耦,一支交易会流经不同的应用系统及模块;另一方面,故障可能由于应用、系统软件、硬件、网络等环节的问题。在排查故障原因时应该避免全面性的排查,建议先把问题范围缩小到一定程序后再开始协调关联团队排查。
•关联方配合分析问题
与第(3)点避免同时各关联团队同时无头绪的排查的同时,对于牵头方在缩小范围后需要开放的态度去请求关联方配合定位,而对于关联方则需要有积极配合的工作态度。
•是否有足够的日志
定位故障原因,最常用的方法就是分析应用日志,对运维人员不仅需要知道业务功能对应哪个服务进程,还要知道这个服务进程对应的哪些应用日志,并具备一些简单的应用日志异常错误的判断能力。
•是否有core或dump等文件
故障期间的系统现场很重要,这个在故障应急前建议在有条件的情况下留下系统现场的文件,比如CORE\DUMP,或TRACE采集信息等,备份好一些可能被覆盖的日志等。
上述是一般性的故障常见的方法,在重大故障或多方处理的故障出现时,往往小范围的排查不利于快速解决,需要启动紧急处理的流程,建议可以考虑以下沟通:
•召集相关人员
•描述故障现状
•说明正常应用逻辑流程
•陈述变更
•排查进展,展示信息
•领导决策
2、完善监控
1)从监控可视化上完善
完善的监控策略需要有统一的可视化操作界面,在制定完善的监控策略后,故障处理人员需要能够快速的看到相应的运行数据,比如:能够看到一段时间的趋势、故障期间的数据表现、性能分析的情况等等数据,且这些数据可以提前制定好策略直接推出分析结果给故障处理人员,这样就大大提高了故障的处理效率,以呼叫中心系统为例,需要提前配置好以下实时交易数据,以便故障定位:
-交易性能数据:平均交易耗时、系统内部模块交易耗时(IVR交易耗时、接口总线交易耗时)、关联系统交易耗时(核心交易耗时、工单系统交易耗时等)
-重要交易指标数据:交易量、IVR交易量、话务量、座席通话率、核心交易笔数、工单等系统交易量
-交易异常情况数据:交易成功率、失败率、错误码最多交易
-按服务器分析交易数据:按server统计各服务交易处理笔数,交易总耗时
有了以上交易数据,并通过监控按一定频率统计,运维人员在出现故障时,通过鼠标即点击即可看到故障什么时候开始,是系统内部有问题还是关联系统有问题,最突出的交易是哪一支,各服务器交易量是否均衡等情况。
2)从监控面上完善
监控最基本的工作就是实现对负载均衡设备、网络设备、服务器、存储设备、安全设备、数据库、中间件及应用软件等IT资源的全面监控管理。在应用软件类的监控工作中,不仅需要有服务进程、端口等监控,还需要有业务、交易层的监控。
全面性的应用监控可以让故障提前预警,并保存了影响应用运行环境的数据,以缩短故障处理时间。
3)从监控告警上完善
完善的监控策略需要有清晰的监控告警提示,值班人员要以根据监控告警即可作出简单的问题定位与应急处理方案。比如类似以下的监控短信:
22时,【理财应用系统】中【应用服务器LC_APPsvrA 10.2.111.111】的【前置应用模块】出现【应用端口:9080】不存在,该端口作用【提供理财应用处理(负载均衡部署)】,原因可能为【SERVER1服务异常停止】,监控系统己进行以下应急处理【自动执行端口进程启动】,该事件紧急程度【高】。
管理员可以通过短信内容看到哪个系统、哪个应用、哪个模块出了什么问题,可能是什么原因,对业务有什么影响,是否需要马上处理(比如凌晨出现此预警是否可以延迟到次日处理)等信息。
4)从监控分析上完善
完善的监控策略不仅需要有实时的数据告警,也要有汇总数据的分析告警,实时数据分析的告警的重要性不用多说,对于汇总分析的数据则能发现潜在风险,同时也为分析疑难杂症提供帮忙。
5)从监控主动性上完善
监控不仅仅是报警,它还可以做得更多,只要我们想办法赋予它主动解决事件的规则,它便有为管理员处理故障的能力。
3、应急方案
提前制定好故障应急方案是很有必要的,但在日常工作过程中我们的应急方案遇到一些问题: