如何追查线上问题
tags: #经验 #output
原则
止损优先
不能先追查问题根源, 首先应该止损
,不让问题进一步扩大,代码回滚
、服务降级
等都可以起到止损的效果。
对于止损有一个比较好的实践,新业务或者重构业务上线时,可以加一个 配置开关
控制是否启用逻辑,在发现有损时,可以及时关掉业务逻辑,比重新上线要快特别多
及时通告
在问题发生之后,要及时对处理问题的过程进行通告
。特别是应对线上有损的问题时,更应该及时通告。在内部群中,简单描述一下问题与可能的原因,处理的进度。而在外部群里,可以只说一下处理的进度。如果有必要,可以将问题上诉到领导,如果还解决不了问题,可以逐级继续上诉。
追查问题的方法
逻辑方法:
- 先收集
现象
:业务报错、线上报错日志等
对紧急的问题来说,需要对线上业务、服务器等非常熟悉,才能迅速收集到有用的报错信息。 - 针对现象假设
原因
:- 常见问题依据追查手册
- 其他问题保持思路开放,大胆假设
- 是否
有损
的判断:
根据现象假设出可能的原因,判断是否是有损的,如果是有损的问题,参考 止损优先 质疑
所有数据:
各个数据、监控系统等的有效性也需要质疑,不能完全相信,需要小心求证
知识准备
- 对线上各种
日志
的熟悉,从日志中能看到具体的问题,比如 nginx 日志 php 日志等 - 对线上的各种
配置
更要做到心中有数 - 对
细节
的追查,每次都更细一些,这样才能获得更多的信息 - 计算机
基本功
,有时问题追查不下去,不是没有线索,而是追查到了一个未知的领域,没有相关的知识,无法追查
总结经验
- 成熟的方法落地成
工具
- 对问题的追查形成
文档
问题解决之后
如果问题解决之后,我们就不再跟进了,那么我们就沦为了解决问题的工具,问题也随之越来越多,解决不完。
那么,我们可以通过思考以下几点来提升自己
- 线上是否恢复了正常?(
最基本的
) - 问题的原因是什么?(
落到追查文档
) - 通过什么手段恢复的?(
解决方案
) - 怎么可以避免下次再次出现问题?(
防患未然
) - 除了此次出现的问题,会不会有其他的问题出现(
举一反三
) - 出现此类问题是否是架构问题造成的?(
根本原因
)
本文来自博客园,作者:吴丹阳-V,转载请注明原文链接:https://www.cnblogs.com/wudanyang/p/14689204.html