TFS应用层服务器获取F5用户的真实IP地址(高可用性)

当用户数量达到一定级别(例如2千)以上,为保证TFS系统的持续服务,最大程度减少因系统宕机对研发团队的影响,系统管理员一般会考虑应用层和数据库层的高可用性方案。

在应用层的高可用性方案中,目前比较常见的是采用F5 (www.f5.com)设备,将TFS的多个节点服务器纳入统一调配方案中,在多节点之间协调请求资源,实现负载均衡分配;同时,当任一节点服务器出现故障时,F5系统会自动将终端用户的http请求转发给其他应用层服务器。

在F5环境中部署TFS系统时,按照F5系统的默认配置,F5转发给TFS系统的http数据包中的源IP地址为F5服务器的地址,而不是最终用户的真实IP地址,在IIS的日志中,你会看到所有的源IP地址为F5的地址,如下图:

image

Figure 1 – IIS Logs

这种配置,对于需要排查问题的时候,给系统管理员带来了极大的不便,系统管理员无法跟踪到用户的真实IP地址。

通过查阅F5资料https://devcentral.f5.com/articles/x-forwarded-for-log-filter-for-windows-servers,发现可以通过配置X-Forwarded-For的日志过滤,在http数据包中增加字段信息,记录终端用户的原始(真实)IP信息。

我们这里不记录如何在F5服务器端的配置X-Forwarded-For字段,只记录如何在TFS的应用层服务器上IIS日志中增加X-Forwarded-For字段。

在IIS中增加对应字段,首先要确保的IIS版本在8.5或更新的版本,支持增强的日志Enhanced Logging for IIS 8.5,https://www.iis.net/learn/get-started/whats-new-in-iis-85/enhanced-logging-for-iis85)功能,否则你还需要二外的配置(例如下载F5的ISAPI过滤器,http://devcentral.f5.com/downloads/codeshare/F5XForwardedFor.zip)。

下面已图示的方式介绍IIS中增加F5中传入的额外字段:

1. 已管理员身份打开IIS管理器

2. 在左侧窗口中选择Team Foundation Server站点,右侧窗口中选择日志按钮

image

3. 在日志页面中,选择“选择字段…”按钮,在弹出的窗口中点击“添加字段”,输入在F5中新增的字段“X-FORWARDED-FOR”,并保存设置。

image

4. IIS会在系统中新建一个以“_x”结尾的同名日志文件,文件中记录下了F5中传入的用户源IP地址

image

通过上面的设置,我们在IIS的日志文件中可以获得终端用户的真实IP,这对跟踪数据请求的来源和分析问题原因有非常大的帮助。

【常见问题】

1. 修改IIS配置以后,可能导致浏览器访问出现500错误,此时重启TFS Job Agent服务即可

2. 在TFS2013上可能出现用户权限错位的现象,即A用户登录成了B用户,需要清除服务器缓存,或者升级TFS系统到2015或2017.

--

http://www.cnblogs.com/danzhang/  ALM MVP 张洪君

-

posted on 2017-01-12 14:50  danzhang  阅读(2477)  评论(0编辑  收藏  举报

导航