TeamCity On-Premises 2024.03 Help

服务器健康状况

Server Health 报告包含了服务器检查的结果,用于确定是否存在任何可能影响或可能潜在影响性能的配置问题。 这些问题,即所谓的服务器 健康项目,由 TeamCity 在 服务器健康 页面上统一报告,该页面位于 管理 区域。

查看报告至少需要项目管理员 权限

范围和严重性

该报告让您可以定义分析范围:您可以选择分析全局配置,或报告项目相关事项。 您能获取的范围取决于赋予您的 View Project 权限的级别。

服务器健康分析还采用了 严重性 评级,这取决于问题对整个系统配置或单个项目的影响。

可见性选项

默认情况下,与全局配置相关的警告和错误级别的结果将在报告页面以及 TeamCity 的每个页面顶部显示。

除此之外,一些项目将会就地显示:根据引起问题的对象不同,服务器健康项目将在构建配置、模板或 VCS 根设置页面上报告。

只有活动项目才会在 TeamCity 页面上显示。 要从显示中移除一个项目,请在报告页面上的项目旁边使用 hide 选项。 对于全局项目,此选项在每个服务器健康信息中都可用。

隐藏的项目将会从 TeamCity 页面中移除,并在 Server Health 页面的活动项目下方展示。 他们的描述将被置为灰色。

要返回要显示的项目,请使用 Show 选项。

可见性的更改将会在 Administration 区域的 Audit 页面上列出。

问题类别

健康项目涵盖了多种服务器功能,允许管理员轻松监控 TeamCity 的总体状态。

全球配置项

TeamCity 显示有关新的 TeamCity 版本可用性的通知以及升级提示。
如果有任何许可证与此新版本不兼容,将会显示警告。 通知只有系统管理员可以看到,他们可以使用 "部分许可证不兼容" 消息中的链接快速导航到 Licenses 页面,在该页面中,所有不兼容的许可证旁边都会有警告图标。

代理配置

如果代理未运行推荐的 Java 8,TeamCity 会显示通知:此报告显示所有在 1.8 版本之前的 Java 下运行的代理。

多节点设置配置错误

对于 多节点设置,TeamCity 可能在以下情况下显示健康报告:

主节点处于非活动状态

主节点已经处于不活跃状态N分钟

如果这是计划性的不活动状态(重启或升级),您可以忽略此消息 —— 主节点再次活动时,它将消失。 否则,请登录到主节点服务器并检查 TeamCity 进程的状态。

如果没有 TeamCity 进程,或者服务器已经宕机且无法立即恢复,则您可以在 节点配置 页面,将 "主 TeamCity 节点" 的责任分配给当前节点或其他节点。

主服务器和次级服务器的不同版本

次要节点版本与当前服务器版本不匹配

在这种情况下,您需要将升级次要节点至与主 TeamCity 服务器相同的版本。

多节点设置中无代理服务器

多节点设置没有代理服务器。

要设置一个高可用性的 TeamCity 安装,您需要 配置反向代理

未分配责任

如果群集节点都没有具有特定责任,TeamCity会通知您。 例如,如果所有节点的 "VCS 仓库轮询" 责任全部取消选中,那么 TeamCity 就无法检查仓库的更改并启动新的构建。 导航至 Administration | Node Settings,确保每个责任都至少分配给一个节点。

代理配置版本不匹配

当您的代理配置中声明的 X-TeamCity-Proxy 标头的值表明该配置与您的 TeamCity 服务器并不完全兼容时,TeamCity 将会显示此警告。 将此文档切换到与您的 TeamCity 服务器匹配的版本,并确保您的代理设置与这些示例配置相似:代理配置

HTTPS 配置问题

以下报告会通知您与 HTTPS Access Setup 相关的问题。

服务器根URL使用HTTP

当您配置了对 TeamCity 的 HTTPS 访问,但您的 服务器 URL 仍然设置为 "http://..." 地址时,会显示此报告。 更新您的服务器 URL 以消除此警告。

域隔离工件 URL 使用 HTTP

当您配置了对 TeamCity 的 HTTPS 访问,但您的 artifacts isolation URL 仍设置为 "http://..." 地址时,将显示此报告。 更新您的 artifacts 隔离 URL 以消除此警告。

WebSocket 连接问题

WebSocket 协议用于获取网络用户界面的事件更新、运行构建更新和统计计数器的更新。

如果有任何问题阻止 WebSocket 连接工作,将会显示警告。 TeamCity 会自动切换到遗留更新模式,您将可以继续在此模式下使用 TeamCity。

然而,我们建议进行以下调整,以便从更快的网页 UI 更新中获益,同时减少不必要的网络流量和延迟:

  • 代理服务器配置

  • BIO 连接器调整

代理服务器配置

如果在 TeamCity 服务器前使用了反向代理,需要配置它以支持 WebSocket 协议。

所有不支持 WebSocket 连接的浏览器使用的 URL 都列在相应的健康报告中。

BIO 连接器调整

如果 Tomcat 被配置为使用 BIO 连接器,那么 WebSocket 协议会被 自动禁用。 建议更改 Tomcat Connector 设置 以使用 NIO connector

严重错误

这个类别显示以下错误:

  • 项目配置文件中的错误 - 如果服务器在从磁盘加载配置文件时检测到一些不一致或破损的配置,就会发生这种情况

  • disk space watcher 引发的错误

  • 来自 TeamCity 服务器 Memory Monitor 的警告

数据库相关问题

如果服务器当前使用内部数据库,TeamCity 将会发出警告。 建议使用独立数据库作为存储引擎

由于 TeamCity 不支持将 Sybase 作为外部数据库,如果您使用的是 Sybase,将会显示一条警告信息。

构建配置项

依赖问题

TeamCity 能够检测出依赖于缺失构建配置的构建配置(例如,依赖于在依赖配置后删除的构建配置)。

具有大型构建日志的配置

大型 Build Logs(默认超过200 MB)可能会降低服务器性能,因为它们可能过于庞大,难以解析,且在浏览器中查看困难。

如果某些构建配置经常导致此检查失败,可以调整构建脚本以减少输出的内容。

低效的工件发布

TeamCity 检测到构建发布了许多小的 artifact 文件,并建议将它们作为单一的 .zip 存档发布,以优化上传/下载操作。 查看更多信息这里

重复项查找器运行器

2021.3 版本及更高版本的 ReSharper Command Line Tools 不再包含 DupFinder 工具。 因此,依赖于此工具的 重复项查找器(ReSharper) 运行器不能与最新的 TeamCity 安装包中捆绑的 CLT 版本一起使用。

要继续使用此运行器,安装版本为 2021.2.3 或更早的 R# CLT,并在运行器的高级设置下选择此版本。

与 VCS 根相关的问题

未使用的 VCS 根目录

TeamCity 将向您展示在项目中定义的 VCS roots 并提议删除未使用的 roots。

相似的 VCS 根

TeamCity 将 VCS roots 视为相同,当它们的主要设置(例如,URLs,分支设置)相同,即使它们的一些设置(例如,用户名,密码)不同。

该报告将向您展示相同的根源,并将合并它们与否的决定权交给您。

相似的 VCS Root 用法(又名实例)

您可以为 VCS 根 设置定义值,或使用参数引用来引用 在不同级别定义的各种参数

当引用的 VCS 根参数解析为与定义的值相同的值时,这种情况将被报告为相同的 VCS 根使用情况。

一般建议使用参数引用进行根设置,从而优化 VCS 根的数量。

触发未关联 VCS 根的规则

如果 VCS 触发器或计划触发器 的规则引用了一个未附加到任何构建配置的 VCS 根,TeamCity 将显示警告。

冗余触发器

该报告将展示构建触发器冗余的情况,例如:

  • 存在两种构建配置 AB

  • A 快照取决于 B

  • 两者都有 VCS 触发器,A 启用了 在快照依赖项中的更改上触发 选项。 在此情况下,B 中的 VCS 触发器是冗余的,并导致 A 的构建多次进入队列。

多个相同的构建触发器

如果启用了两个或更多类型相同且参数值集合相同的触发器,将显示警告。 被禁用的触发器不会被考虑在内。

有效静默期大于指定的

当构建配置有一个静默期的 VCS 触发器 时,TeamCity 将在检测到最后一次更改后等待指定的时间,然后触发构建。 在此期间,所有影响此构建配置的 VCS Roots 都会被检查是否有更改。 如果其他 VCS Roots 的检查更改间隔大于静默期,那么有效的静默期将等于涉及的 VCS Roots(可能是依赖中的 VCS Roots)的最大检查更改间隔。

可能的修复方法可能是以下几种之一:

  • 使用 commit hooks 来触发检查更改的操作

  • 在 VCS 触发器中增加静默期,使其大于相关 VCS Roots 的更改检查间隔。

  • 将问题性 VCS Roots 的更改检查间隔进行减少

VCS 检出

可能的频繁清理检出

此部分报告将显示可能频繁出现的 干净签出(clean checkout),可能由以下两个原因引起:

自定义签出目录

拥有不同的 VCS 设置 但拥有相同的 自定义签出目录 的构建配置可能会导致经常进行全新签出,从而拖慢性能并妨碍增量源更新的一致性。

构建文件清理器(Swabra)设置

在多个构建配置中启用 构建文件清理器(Swabra) 构建功能可能会导致额外的清理检出。 如果这些配置的构建交替在相同的代理上运行,并具有相同的版本控制设置或指定了相同的自定义检出目录,可能会发生此情况。

可能的频繁清理检出(Swabra 情况) 服务器健康报告显示按 Swabra 设置分组的这样的错误设置配置。

最佳推荐签出方式

报告展示了大型服务器端补丁,建议切换到 代理端签出(agent-side checkout)

代理上的默认自动签出

如果默认的代理端签出操作无法进行,TeamCity 将会显示相应的健康报告项目,并将使用服务器端签出。

与集成相关的项目

  • 如果一个项目或构建配置有安全参数并且配置为构建 GitHub 拉取请求,此报告将发出警告,因为通过拉取请求提交的恶意代码可以获取这些安全参数。

  • 如果一个 VCS 根指向 GitHub 或 Bitbucket,系统将显示建议配置相应的问题跟踪器。

代理健康状态

一些代理无法升级

该报告有助于查找升级失败的代理。 构建代理 日志 应该能帮助识别问题的原因。

云代理

如果用户从个人资料中移除了镜像,会显示一个警告,说明由 TeamCity 已开始的实例将不会自动停止。

未使用的构建代理

该报告是为未使用3天及以上的代理显示的,如果

  • 您的环境中有超过3个代理

  • 您的代理已注册超过3天

  • 如果这3天内构建是在服务器上运行的

代理服务器配置错误

该报告显示了用于访问 TeamCity 网页接口的代理服务器检测到的配置错误。

查看我们的 建议,了解如何使用 TeamCity 设置代理服务器。

建议的设置

TeamCity 分析构建配置的当前设置,并建议添加更多选项,例如,添加 VCS 触发器,构建步骤等等。 除了服务器健康报告外,特定构建配置的建议会直接显示在配置设置页面上。

可扩展性

由 TeamCity 提供的默认服务器健康报告可能覆盖过多,或者不能覆盖您所需的所有项目。 根据您的基础设施、配置、性能方面等等。 您需要分析的内容,可能需要定制的服务器健康报告。 TeamCity 允许您编写一个 插件 来报告具体项目。

最后修改日期: 16日 7月 2024年