在线上故障处理过程中,日志尤其重要,通过日志能够定位到问题或者bug细节 。在分布式架构的系统中,多实例的部署导致日志分散在多台机器上,靠人肉查看耗时费力,效率低下;另一方面,业务发展壮大后,业务系统越来越多,系统间依赖越来越多,各个业务系统的日志需要通过唯一的标识串联起来,否则会出现信息断层的问题,日志变得无用 。所以完善的日志trace系统非常必要 。
日志trace体系的几个关键点:
1、有唯一的标识串联上下游系统日志
2、能自动收集分布式应用日志
3、日志收集时延不能超过10分钟(具体时间试实际情况而定,如果时延太长,日志没有多大意义)
4、支持多种形式的查询/过滤/统计等
【如何快速处理线上故障】5、可以看到时间序列上的变化趋势
推荐使用开源的日志架构:logstash+elasticsearch+kibana 。
完善的故障处理机制
线上故障处理的要点在于快速,所以需要有完善便捷的事件流转机制和故障处理机制来保证:生产事件能快速推送到相关责任人进行联合排除,保证事件排查过程中快速共享信息,快速完成决策 。
对于事件上报,一般的公司会有专用的通道给到一线客服人员,客户人员填报工单,上报事件,关键点在于事件处理中担任‘路由’角色的人员,他需要对业务系统比较熟悉,对于上报的问题能快速确定相关的业务系统和负责人,并通知到对方,这个角色既要熟知业务,也要熟知系统架构和组织架构,这个角色一般会交由专门人员处理,称之为‘二线’人员,或者由运维人员兼职 。
排查生产事件/故障时,推荐进行集中版本,便于快速共享信息,同时需要有一个master,以便把握大的方向,并快速完成决策 。
总结
以上,对线上故障处理的目标、思路、步骤及基础设施进行了讨论,先总结如下:
1、线上排障的第一目标是恢复线上服务或者降低对线上服务的影响,关键点在于快速二字,在‘跳坑’-‘填坑’之后,需要总结以便‘避坑’ 。
2、一切的流程或者手段都是为‘快速’二字服务的,所以线上故障是最高优先级的任务,任何人需要第一时间予以响应;同时,尽早地反馈故障问题,尽早地集结各个角色,群策群力地进行排障值得提倡;这个过程中,需要有一位有‘威望’的master坐镇,主持大局;在保证有序推进的情况下,尽可能地并行地收集信息,进行尝试 。这个有点分布式架构的味道了,master坐镇,slave并行干活,提高效率 。
3、一切的流程或者手段都是为‘快速’二字服务的,所以线上故障是最高优先级的任务,任何人需要第一时间予以响应;同时,尽早地反馈故障问题,尽早地集结各个角色,群策群力地进行排障值得提倡;这个过程中,需要有一位有‘威望’的master坐镇,主持大局;在保证有序推进的情况下,尽可能地并行地收集信息,进行尝试 。这个有点分布式架构的味道了,master坐镇,slave并行干活,提高效率 。
4、必须要有一个‘严肃’的形式让当事人及旁观者‘吃一堑长一智’,线上故障处理报告是必须的产出物 。
5、为了更加高效的处理线上故障,需要有完善的基础设施支撑:监控/告警体系、日志trace体系、事件流转机制 。
对于线上排障的流程整理了一个大图,如下:
文章插图
参考资料
本文中部分观点来源于goole出版的《google SRE》一书,这本书中有很多实用的且经过实践证明了的详尽的例子,感兴趣的伙伴可以读一读!
》》END《《
推荐阅读
- 一文教你读懂如何手工配置DBControl
- 如何煮茶叶蛋好吃入味 原来煮茶叶蛋还有这样的技巧
- 淘宝账号注册过多 淘宝账号注册过多违规怎么处理
- 索伊冰箱怎么样 索伊冰箱质量如何
- 杜仲茶能减肥吗 如何喝杜仲茶才能有效减肥
- 床头柜选购技巧
- 三八妇女节 女人该如何喝茶?
- 标签贴纸怎么撕掉不留痕迹 贴纸怎么撕掉不留痕迹
- 莓茶多少钱斤 如何选购
- 房奴必看!房贷切换LPR后利率咋算?每月还款如何浮动?