• 清真云 2020年3月13日-2020年3月14日 故障报告


    您可以到这里下载报告的完整版本

    https://files.cnblogs.com/files/6pan/%E6%B8%85%E7%9C%9F%E4%BA%91%E6%95%85%E9%9A%9C%E6%8A%A5%E5%91%8A-20200314.pdf.zip

    清真云 线上系统故障报告表


    故障概况 故障发生时间 2020/03/13 14:38:00 故障记录时间 2020/03/14 13:56
    故障概要 多系统超时、报告 INTERNAL_ERROR
    影响范围 严重程度 高 紧急程度 紧急
    范围说明 所有应用
    (风险问题)
    故障原因描述 故障反馈来源 QQ群 反馈人 -
     
    一、 故障现象
    1. 清真云所有端、均无法正常打开请求超时后返回服务器错误
    二、 故障原因分析
    故障梳理:
    1. 2020/03/13 19:30:00 收到离线打开异常反馈
    2. 2020/03/13 20:18:30初步怀疑离线微服务异常,尝试重启服务,没有解决
    3. 2020/03/13 20:19:30离线服务大量报告 无法连接redis数据库

    4. 2020/03/13 20:20:00 检查物理服务器连接数,仅500左右

    5. 2020/03/13 20:35:00 发现DNS有故障,分析后认为不影响本次故障
    6. 2020/03/13 21:03:00 redis服务正常

    7. 2020/03/13 21:07:48 重启离线微服务,业务开始恢复
    8. 2020/03/13 17:55:00 发现同一namespace下 多出 istio-proxy 微服务,且多个微服务配置不正常
    9. 2020/03/13 21:14:00 离线微服务再次自动重启
    10. 2020/03/13 21:19:00 排查请求,发现故障时间段请求数飙升


    11. 2020/03/13 21:22:00 观察发现redis连接数上涨迅速,怀疑本地连接数被流量压垮

    12. 2020/03/13 21:26:00 手动增加离线微服务实例,开始恢复
    13. 2020/03/13 21:38:00离线微服务开始稳定不再自动重启
    14. 2020/03/13 21:40:00排查代码死循环,无收获
    15. 2020/03/13 21:54:00综合IT流量图,发现有部分无法解释的高峰

    16. 2020/03/13 21:54:00 放大请求图,发现每次请求有尖峰,并且迅速回落,推测此时应用被大量请求冲垮

    17. 2020/03/13 21:55:00 多应用均有明显的特征

    17. 2020/03/13 22:00:00 网关处发现巨大包,但排查后确认与此次故障无关

    17. 2020/03/13 22:11:00 确认应用恢复正常
    18. 2020/03/14 11:18:00 用户依然报告故障,发现应用重启78次
    19. 2020/03/14 11:20:00 仔细筛查应用日志,发现有无法连接消息队列的错误
    20. 2020/03/14 11:48:00 确认两个机房路由中断,但公网正常
    21. 2020/03/14 11:50:00 运营商报故障,同时迁移消息队列
    22. 2020/03/14 13:09:00 消息队列迁移完成,故障恢复


    三、修复方式
    1. 迁移故障的消息队列;
    2. 对大压力服务扩容。

    四、 问题总结
    3. 故障根本原因: 消息队列所在机房网络故障;
    4. 故障以后,pod重启,而k8s检测到故障到重启需要耗费较大的时间,在此期间积压了大量的请求,重启完毕之后一瞬间恢复,将应用压垮;
    5. 因消息队列连接不上,节点频繁重启;
    6. 故障表现较多、干扰项非常多,如istio配置错误、DNS故障、内网连接失败等,给故障排除带来了干扰;
    7. K8s特有的重启机制,导致重启一段时间后应用表现正常,为故障排查也带来了干扰。

    五、改进措施
    1. 加强监控,尤其是k8s服务的监控;
    2. 完善日志监控告警指标。

    故障恢复 故障处理 故障开始时间 故障恢复时间 故障处理人
    2020/03/13 15:38:00 2020/03/14 13:09:00 -
    恢复结果 线上验证恢复正常
    备注

  • 相关阅读:
    ExternalInterface.addCallback()方法,as2 和 as3的区别
    关于table的display问题
    关于table的display问题
    js表单验证是否空值的简单处理办法
    《那些年啊,那些事——一个程序员的奋斗史》——112
    《那些年啊,那些事——一个程序员的奋斗史》——111
    《那些年啊,那些事——一个程序员的奋斗史》——113
    《那些年啊,那些事——一个程序员的奋斗史》——115
    《那些年啊,那些事——一个程序员的奋斗史》——112
    《那些年啊,那些事——一个程序员的奋斗史》——115
  • 原文地址:https://www.cnblogs.com/6pan/p/12492245.html
Copyright © 2020-2023  润新知