一次典型的TFS故障处理:域控失联
问题描述
突然收到客户报告,开发人员登录TFS系统时,出现登录异常现象。即使输入了正确的账户和密码,TFS系统任然提示重新登录的页面,导致用户无法打开TFS系统。
即使登录成功,在修改代码或者修改工作项的工程中,系统时而提示“管理员取消了操作”。
现象如下图:
处理过程
1. 接到报告后,我们立刻在多个客户端上验证,重现了用户反馈的问题,并确认问题出在TFS系统服务端,而不是个别开发人员计算机的问题。
2. 根据问题现象,迅速排查TFS服务器中的日志和配置信息,发现DNS正常,数据库和应用服务器之间的访问都正常,使用数据库客户端访问单台数据库,都可以正常访问。但是出现一些奇怪的现象:
- 使用数据库客户端访问SQL Server AlwaysOn的集群IP,系统提示提示“目标主体名称不正确。无法生产SSP1上下文”,如下图。
- TFS集群中的所有服务器出现不能访问域控服务器(AD服务器)的现象,
- TFS服务器到域控服务器之间的TCP 135端口不通。
TFS服务器系统的认证方式是通过AD服务器实现的,没有AD服务器提供的基础认证服务器,系统是不可能正常运行的。
由此,我们判断TFS系统异常的原因是由于不能访问域控导致的。结合当天运维组调整生产区和测试区的防火墙策略,初步断定是防火墙的策略导致了TFS系统和域控之间的网络隔离。
3. 我们迅速联系了运维组负责人,并将相关技术人员拉入到微信群,协同分析原因,寻求迅速解决问题的方案。
解决方案
经过运维组相关人员分析确认,当日变更的防火墙策略阻挡了TFS服务器和域控之间的135端口通信。
运维人员立即取消TFS系统和域控之间的防火墙策略。防火墙策略生效后,可以看到TFS系统可以正常访问域控服务器,TFS服务器也立刻恢复正常,服务器不需要做任何重启操作。
经过验证,TFS系统的基本功能(例如登录、修改工作项、需改代码)都恢复正常。
总结教训
这是一次比较典型的TFS服务器故障处理过程,通过总结分析本次故障的原因和处理过程,类似问题应该注意以下几点:
1. 防火墙策略调整前,需要提前(至少2-3日)通知TFS系统的负责人,以便提取做好相关的调研和预备方案
2. TFS系统依赖的系统(例如域控服务器、邮箱服务器、DNS服务器、需求管理平台等)做相关调整或升级前,需要提前通知TFS系统负责人,以便提前做好相关准备
3. 相关配置调整后、相关系统调整升级后,需要通知TFS负责人验证,是否对TFS系统产生了直接影响
微软DevOps MVP 张洪君 http://www.cnblogs.com/danzhang
--End--