运维经典案例学习之GitLab官网在线仓库SSH连接故障排查和经验总结( 二 )
ssh_exchange_identification: connection closed by remote host
fatal: Could not read from remote repository
比较要命的是错误信息是间歇性的随机爆发 , 无法预测的 , 不能重现 , 也没有明确指出截图和日志来说明问题发生的各种现象和环境 , 当然该错误信息也太笼统没有啥太大的意义 。 SSH客户端报告该信息可能的原因:碎片化的客户端或虚拟机 , 网络防火墙行为 , ISP做的手脚 , 当然也有可能是GitLab应用程序问题 。 GitLab在线仓库每天要处理2600万的Git-over-SSH的连接 , 大约平均每秒300个的链接 , 要从中发现少数几个失败 , 显然是一件很有挑战性的问题 。
第一个线索
经过初步分析后 , 运维团队联系了有问题的客户 , 他说每天都会有多次出现这个问题 , 所以以此来作为出发点显然很合适 。 客户还提供了问题是对应的公网IP地址 , 所以可以在的GitLab前端代理HAproxy节点抓包分析 , 定位到具体有问题的数据包信息 。 好消息是 , 客户使用了alternate-ssh端口 , 这样就可以只分析两台HAProxy服务器 , 将问题定位范围进一步由16减少到2 。
推荐阅读
- Ansible自动化运维
- 数据库紧急修复中 微盟系统遭遇自家核心运维破坏
- 爬虫学习之HttpClient练习
- 爬虫学习之HTTP协议初步了解
- 正则表达式学习之替换分组练习
- 正则表达式学习之分割字符及数量词练习
- Scala学习之基础函数
- Scala学习之数据类型和变量
- 编程学习之亲密数(C++描述)
- 企业级IT系统运维者如何才能体现真正价值?