故障案例分享 | 证书过期引发的血案...

基本情况

1月某日早9点15分,某手机端app接到用户报障:app出现异常,具体表象为登录app提示“License不合法,请联系系统管理员!”。后经核查,具体报错时间为7点24分-10点32分,故障影响时长188分钟,影响该时间段内254位用户登录。

时间线回放

  • 0:00 证书失效。
  • 7:24 app出现登录异常。
  • 9:15 用户报障。
  • 9:20 运维人员登录后台管理平台确认License授权已过期,并联系证书提供商相关工作人员申请新的License文件,事发时人在外面。
  • 9:55 证书提供商工作人员开始远程支撑。
  • 10:20 证书提供商提供新License文件。
  • 10:25 app运维人员完成服务器授权更新。
  • 10:26 app恢复使用。

原因分析

  1. 该app未将License到期检查纳入例行运维检查项,在日常检查中均未发现该问题。
  2. 该app业务探测、证书到期等各类告警缺失,导致问题未能及时发现。
  3. 关于license授权到期问题,证书提供商内部有一套License授权文件管理系统,系统会在license授权到期前10天,在公司内部通信软件每日推送告警提醒,直到处理完成。证书提供商人员未重视License到期情况检查,未重视群里告警提醒,没有在第一时间主动发现问题。
  4. 证书提供商支撑力量薄弱,问题响应不及时。

整改举措

  1. 针对本次License授权文件到期问题,安排相关责任人,将License到期检查纳入例行运维检查项中,每周进行例行检查,及时发现问题解决问题
  2. 全面梳理公司内部iOS证书、描述文件、软件授权证书、https证书等所有证书过期风险隐患,结合省ITSM系统维护作业功能统一管理,实现定期提醒执行维护作业。
  3. 手机端部署rpa定时巡检,模拟用户操作等功能,异常情况及时告警。
  4. 增加License证书到期监控告警

    故障点评

  5. 证书需要闭环管控
    前有特斯拉证书过期导致车辆无法正常解锁,后有LinkedIn的HTTPS证书两年内接连两次过期导致站点停机,BATJ这类大厂,都不乏证书过期导致的故障。很多人的第一反应,可能会觉得证书过期管理这么个小事情都搞不好,是不是人的问题?但是业界这么多知名厂商都中招,我想不能简单的把问题归因为人不行,这是思维的懒惰啊!我们应该从技术管理、流程机制等角度系统化的解决问题,既治标又治本。
  6. 第三方默认无责
    谁引入了第三方的技术组件,谁就要对其可用性负责。即我们在使用外部技术组件的时候,要仔细评估对方的可用性情况,以及我们的兜底方案等等。在该案例中,证书即可视为第三方组件。定责是对内的,默认第三方无责是为了避免内部定责时把问题甩锅给第三方,久而久之 SRE 会失去应有的责任心。当然,故障是第三方引起的,我们理应去追责、索赔,这没有问题,但在架构设计上、整个稳定性保障上有没有哪些工作是可以完善来规避故障的,这是我们需要思考的内容。

本文由mdnice多平台发布

你可能感兴趣的:(程序员)