RMT 升级:技术参考
本部分是升级过程中检查的操作阈值、系统路径和网络端口的技术参考指南。使用这些表来快速诊断验证故障,并使您的环境与所需的 RMT 基准保持一致。
注意:为了与我们公司的平等价值观保持一致,我们已将 RMT Master 更新为 RMT Server。在某些情况下,RMT Server 安装路径和命令可能使用术语“Master”而不是“Server”。因此,您可能会继续在 CLI 命令和选项、安装文件夹、配置文件和其他实例中看到这些术语。有关详细信息,请参见关于 Tableau 帮助(链接在新窗口中打开)。
升级前运行状况检查
升级前运行状况检查会在现有安装仍然完好无损(如服务正在运行、数据库可访问)时检查您的 RMT Server 或代理主机,并生成详细的 PASS/FAIL/WARN 报告。它对系统资源、帐户、文件权限、PostgreSQL、RabbitMQ、网络、配置文件和 RMT 服务运行 80 多项单独检查。下表列出了升级之前执行的检查。如果任何项目返回 FAIL 状态(退出代码 2),则取消升级。
系统和硬件
| 检查 ID | 名称 | 平台 | 故障 (FAIL)/警告 (WARN) 条件 |
| #1 | 操作系统 | Linux、Windows | WARN 操作系统版本不在预检查允许列表中。支持的列表为 RHEL 8.x/9.x、Ubuntu 20.04/22.04/24.04、CentOS Stream 8/9、Oracle Linux 8.x/9.x、AlmaLinux 8.x/9.x、Rocky Linux 8.x/9.x、Amazon Linux 2023、Windows Server 2019/2022 |
| #2 | 磁盘空间 | Linux、Windows | FAIL RMT Server < 20 GB 或 Agent < 5 GB 可用空间。WARN RMT Server < 50 GB 或 Agent < 10 GB 可用空间 |
| #2a | 磁盘类型 | Linux、Windows | INFO 报告驱动器是 SSD 还是 HDD |
| #3 | RAM | Linux、Windows | WARN RMT Server < 8 GB(最小值)或 Agent < 4 GB(最小值) |
| #4 | CPU 内核 | Linux、Windows | WARN RMT Server < 8 GB(最小值)或 Agent < 4 GB(最小值) |
| #4a | CPU 指令 | Linux、Windows | FAIL (Linux):缺少 sse4_2 或 popcnt。WARN (Windows):检测到较旧的 CPU。 |
| #4b | VC++ Redist | Windows | FAIL 缺少 Visual Studio 2022 C++ Redistributable。 |
| #4c | OpenSSL DLLs | Windows | INFO 检查 libcrypto-3-x64.dll 和 libssl-3-x64.dll |
| #5 | 系统正常运行时间 | Linux、Windows | INFO:如果 < 10分钟(最近重新启动)或 > 90 天(挂起的修补程序)的注意事项 |
| #6 | Systemd 正在运行 | Linux | FAIL systemd 未运行,PASS:正在运行或已降级 |
| #7 | FIPS 模式 | Linux、Windows | FAIL (Windows):在注册表中启用,PASS FIPS 已禁用。WARN (Linux) 与 config.json 不匹配。PASS 操作系统和配置匹配 |
| #7a | PowerShell 版本 | Windows | INFO PowerShell 版本 |
| #7b | 系统区域设置 | Windows | INFO 系统区域设置信息 |
| #7c | WMI 运行状况 | Windows | WARN WMI 存储库不一致 |
帐户和权限
| 检查 ID | 名称 | 平台 | 故障 (FAIL)/警告 (WARN) 条件 |
| #8 | 服务帐户 | Linux、Windows | FAIL 找不到 RMT 服务帐户或 Windows 服务 |
| #9 | 组成员身份 | Linux | FAIL 缺少必需的服务组(例如,rmtmasterapp、rmtmasterconfig 等) |
| #10 | 用户 Systemd | Linux | FAIL 用户 systemd daemon/linger 未处于活动状态 |
| #44 | 已安装 pamtester | Linux | 如果未安装,则为 WARN。若要解决此问题,请安装 yum install pamtester 或 apt install libpam-runtime |
Linux 的目录所有权和权限
| 检查 ID | 目录 | Expected Owner:Group | 预期模式 |
| #11 | 配置目录 | tabrmt-master:rmtmasterconfig | 2775 |
| #12 | 日志目录 | tabrmt-master:rmtmasterlogs | 2775 |
| #13 | 数据目录(+ PG/RMQ 子目录) | 与组件匹配 | 2775 |
| #14 | 先决条件目录 | root 或组件用户 | 755 |
| #14a | rabbitmq-defaults 文件 | 需要 Group-writable | g+w |
| #15 | SSL 证书目录 | tabrmt-master:rmtopenssl | 2775 |
| #15a | 主目录 | 组件用户 | 770 |
| #15b | /etc/profile.d/tabrmt-*.sh | root | 默认值 |
| #15c | 配置目录 setgid bit | -- | 需要 2xxx |
| #16 | environment.bash | 组件用户 | group-writable |
严重性:仅对于 data-dir 集(#13 和 #15)的所有权为 FAIL。所有其他 Linux 目录检查(#11、#12、#14、#14a、#15a–c、#16)会在所有权/模式不匹配时发出 WARN,因为安装程序的安装后操作会在升级期间重新应用所有权。如果权限模式错误但所有权正确,则为 WARN。
Windows 的目录所有权和权限
| 检查 | 名称 | 严重程度 |
| #11 | 配置目录 ACL | 如果服务用户缺少 FullControl 权限,则为 FAIL |
| #12 | 日志目录 ACL | 如果服务用户缺少修改权限,则为 FAIL |
| #13 | 数据目录 ACL (RMT Server) | 如果服务用户对 PG/RMQ 数据目录缺少 FullControl 权限,则为 FAIL |
| #14 | 先决条件目录 ACL (RMT Server) | 如果缺少 ReadAndExecute 权限,则为 WARN(公告 — 每次升级都会重新安装先决条件 MSI,其安装后操作会重新应用 ACL) |
| #15 | SSL 证书目录 ACL (RMT Server) | 如果服务用户缺少 FullControl 权限,则为 FAIL |
| #16a | 服务用户身份 | PASS(信息性 -- 显示服务以哪个用户身份运行) |
| #16b | SeServiceLogonRight 权限 | INFO(如果找到);如果未找到或 secedit 失败,则为 WARN |
| #16c | RMT 目录上的服务用户 ACL | 如果服务用户缺少必需的权限,则为 FAIL |
数据库 (PostgreSQL)
所有 PostgreSQL 检查仅在 RMT Server 上运行。
| 检查 ID | 名称 | 需要 --db-password 选项 | 故障 (FAIL)/警告 (WARN) 条件 |
| #17 | PG 服务 | 否 | FAIL 本地服务已停止和禁用 |
| #18 | 端口 5555 侦听 | 否 | WARN(安全组/VPC / RDS 提示)不侦听 |
| #19 | DB Connection | 是 | WARN 无法连接到内部数据库(SSL、密码或网络问题) |
消息传递 (RabbitMQ)
消息传递 (RabbitMQ) 检查仅在 RMT Server 上运行。
| 检查 ID | 名称 | 故障 (FAIL)/警告 (WARN) 条件 |
| #22 | RMQ 服务 | FAIL 本地服务已停止和禁用 |
| #24 | 队列积压 | WARN 任何有超过 10,000 条消息的队列 |
| #25 | RabbitMQ 用户 | 如果默认 guest 用户仍然存在,则为 WARN |
| #26 | 活动连接 | 仅为 INFO。报告活动连接计数 |
| #27 | 可访问 Erlang Cookie | 如果缺少 Cookie 文件,如果权限错误(应为模式 400 或 600),则为 WARN |
| #27a | 已设置 ERLANG_HOME | 如果未设置“ERLANG_HOME”或路径不存在,则为 WARN(仅限 Windows)。 |
| #27b | SSL 有效性 | FAIL 证书已过期 |
| #27c | 磁盘告警 | FAIL RMQ 分钟上的可用空间少于 10 GB(升级将挂起) |
| #45 | 已填充证书目录 | 如果证书目录存在,但为空或缺少预期的证书文件(服务器证书、密钥、CA 证书),则为 WARN |
网络和配置
| 检查 ID | 名称 | 故障 (FAIL)/警告 (WARN) 条件 |
| #28a/b | 代理与 Master 的通信 | WARN 代理无法通过 5671、5672、80 或 443 访问 Master |
| #33-35 | JSON/Bash Config | FAIL config.json、setup.json 或 environment.bash 缺失或无效 |
| #36a | 已知错误版本 | FAIL 当前版本为 2025.3.0(回归块升级) |
服务和备份
| 检查 ID | 名称 | 故障 (FAIL)/警告 (WARN) 条件 |
| #38 | 所有 RMT 服务正在运行 | 对于每个停止的服务为 WARN |
| #38a | 停滞进程 | FAIL 服务停止后发现残留的 tabrmt-* 进程 |
| #39 | 后台处理器正在运行 | 如果主机进程未运行,则为 WARN |
| #40 | 升级前备份提醒 | WARN 作为升级前备份配置的提醒 |
| #41 | 拓扑 | 仅为 INFO。报告 Master/代理节点类型和(带 DB)活动代理计数 |
| #42 | 组件版本清单 | 仅为 INFO。报告 RMT、PostgreSQL、RabbitMQ、OpenSSL 版本 |
| #43 | 计算机规格摘要 | 仅为 INFO。报告操作系统、CPU 内核、RAM、可用磁盘空间 |
升级后运行状况检查
这些检查在升级后运行。它们不会阻止,失败不会停止升级,但会指示安装后问题。
| 检查 ID | 名称 | 组件 | 故障 (FAIL)/警告 (WARN) 条件 |
| #1a-d | 服务和进程 | RMT Server, Agent | FAIL 主服务、PG 服务或 RMQ 服务未运行 |
| #2 | 主机进程管理程序 | RMT Server, Agent | WARN 主机管理程序进程缺失(无自动恢复) |
| #3a-b | 配置文件完整性 | RMT Server, Agent | 如果 JSON 缺失或无效,则为 FAIL |
| #4a-b | 文件权限 | RMT Server, Agent | FAIL 配置/日志目录不可由服务帐户读取/写入 |
| #5a-d | 端口侦听 | RMT Server | FAIL Web (443)、AMQP (5672) 或 DB (5555) 未侦听 |
| #6 | PostgreSQL 连接 | RMT Server | FAIL PostgreSQL 未接受连接 |
| #7 | RabbitMQ 状态 | RMT Server | 如果是外部的,则为 SKIP。在所有重试次数耗尽后为 FAIL。 |
| #8a | 队列使用者 | RMT Server | WARN 存在积压,但没有活动使用者(Master 工作线程断开连接) |
| #9 | RMQ 告警 | RMT Server | FAIL 检测到活动内存或磁盘资源警报 |
| #10 | RabbitMQ SSL 证书 | RMT Server | 如果证书过期,则为 FAIL。如果证书在 30 天内过期,则为 WARN |
| #11 | FIPS 匹配 | RMT Server, Agent | FAIL 操作系统 FIPS 状态不匹配 isFIPSEnabled 配置 |
| #12 | Web 服务器 HTTP 响应 | RMT Server | 将 HTTP GET 设置为“https://localhost:<port>/authentication/loginn”。出现 200 或 302 时为 PASS。连接被拒绝/超时时为 FAIL。出现其他错误时为 WARN。 |
| #13 | HTTPS 证书有效期 | RMT Server | FAIL Web 服务器 TLS 证书已过期 |
| #14a-d | 磁盘空间 | RMT Server, Agent | FAIL 可用空间少于 1 GBWARN:可用空间少于 5 GB |
| #15 | 最近的日志错误 | RMT Server, Agent | FAIL 日志中的致命错误。WARN:严重错误 |
| #16 | RMT 状态 | RMT Server, Agent | FAIL rmtadmin 状态返回故障模式 |
| #17 | Agent 日志历史记录 | Agent | 检查代理数据目录中的日志跟踪文件 (.history, .json)。如果文件不可读或损坏,则为 WARN |
| #18a-f | 库存版本 | RMT Server, Agent | INFO 关于 RMT 版本、PostgreSQL 版本、RabbitMQ 版本、Erlang/OTP 版本、.NET 运行时 (Windows)/操作系统 (Linux)、操作系统版本 (Windows)/内核 (Linux) 的信息 |
运行状况退出代码
使用以下退出代码解释升级前和升级后运行状况检查脚本的结果。
升级前脚本
| 退出代码 | 状态 | 升级行为 |
| 0 | READY TO UPGRADE | 升级继续进行 |
| 1 | UPGRADE WITH CAUTION | 升级继续进行;查看警告 |
| 2 | 请勿升级 | 升级已取消 |
| 3 | 脚本错误 | 检查执行环境 |
升级后脚本
| 退出代码 | 状态 |
| 0 | ALL PASSED |
| 1 | WARNINGS PRESENT |
| 2 | CRITICAL FAILURES |
InstallerContext 严重性更改
在自动 Windows MSI 升级期间使用 -InstallerContext 运行时,以下检查的行为与手动默认值不同。默认(非 InstallerContext)行为对于“已停止但未禁用”/“端口未侦听”状态*已经*是 WARN;为“已停止+已禁用”保留 FAIL。在“-InstallerContext”下,甚至“已禁用”分支也会报告为 WARN,因此正在进行的安装程序驱动的升级永远不会被安装程序即将修复的暂时状态否决。
| 检查 | 名称 | 默认值 | InstallerContext |
| #17 | PG 服务 | 如果已停止则为 WARN,如果已停止且已禁用则为 FAIL,如果全部停止,则为 INFO | WARN |
| #18 | PG 端口 | 如果未侦听则为 WARN,如果所有服务停止则为 INFO | WARN |
| #22 | RabbitMQ 服务 | 如果已停止则为 WARN,如果已停止且已禁用,则为 FAIL,如果全部停止,则为 INFO | WARN |
| #23 | Port 5672 (AMQP) | 如果未侦听则为 WARN,如果所有服务停止则为 INFO | WARN |
| #38a | 停滞的 RMT 进程 | (请参见检查描述) | SKIP(安装程序管理进程生命周期) |
升级前阈值
| 阈值 | RMT Server | Agent | 单位 |
| 磁盘空间 FAIL | 20 | 5 | 可用 GB |
| 磁盘空间 WARN | 50 | 10 | 可用 GB |
| 临时目录 FAIL | 5 | 5 | 可用 GB |
| 临时目录 WARN | 10 | 10 | 可用 GB |
| RAM FAIL | 8 | 4 | GB |
| RAM WARN | 16 | 8 | GB |
| CPU FAIL | 4 | 2 | 内核 |
| CPU WARN | 8 | 4 | 内核 |
| 数据库大小 FAIL | 500 | - | GB |
| 数据库大小 WARN | 200 | - | GB |
| Hangfire 架构 FAIL | 10 | - | GB |
| Hangfire 架构 WARN | 1 | - | GB |
| WAL 目录 FAIL (Windows) | 10 | - | GB |
| WAL 目录 FAIL (Windows) | 2 | - | GB |
| WAL 目录 FAIL (Linux) | 10 | - | GB |
| Mnesia 目录 WARN | 5 | - | GB |
| RabbitMQ 磁盘告警 FAIL | 10 | - | 可用 GB |
| 队列积压 WARN | 10,000 | - | 消息 |
| 证书过期 WARN | 30 | 30 | 天 |
| 清理保留 WARN | 180 | - | 天 |
| 死元组率 WARN | 20 | - | 百分比 |
| 代理心跳过时 | 15 | - | 分钟 |
| 网络驱动程序期限 WARN | 3 | - | 年 |
| 日志目录大小 WARN | 5 | 5 | GB |
| 日志目录大小 WARN(严重) | 20 | 20 | GB |
升级后阈值
| 阈值 | 值 | 单位 |
| 磁盘空间 FAIL | 1 | 可用 GB |
| 磁盘空间 WARN | 5 | 可用 GB |
| 证书过期 WARN | 30 | 天 |
| 队列积压 WARN | 10,000 | 消息 |
| 日志扫描窗口 | 60 | 分钟 |
| RabbitMQ 启动重试 | 6 次尝试 x 5 秒 | 共 30 秒 |
支持的最低组件版本
| 组件 | 最低版本 |
| RabbitMQ | 3.10.10 及更高版本 |
| 代理版本 | 2023.1.0 及更高版本 |
自动化和 CI/CD 集成
对于 Linux:
```base
# Linux
sudo bash rmt-pre-upgrade-check.sh --component master --db-password "$DB_PASSWORD"
EXIT_CODE=$?
if [ $EXIT_CODE -eq 2 ]; then
echo "BLOCKED: Fix critical issues before upgrading"
exit 1
fi
```
对于 Windows:
```powershell
# Windows
.\rmt-pre-upgrade-check.ps1 -Component master
if ($LASTEXITCODE -eq 2) {
Write-Error "BLOCKED: Fix critical issues before upgrading"
exit 1
}
```
安装目录参考
若要手动调用基础诊断实用程序或验证安装结构,请参阅特定于平台的目录路径:
Linux 目录结构
```
/opt/tableau/tabrmt/ # Install root
+-- master/ # Master application binaries
+-- agent/ # Agent application binaries
+-- prerequisites/ # Bundled dependencies
/var/opt/tableau/tabrmt/ # Data root
+-- master/config/ # config.json, setup.json
+-- master/logs/ # Application logs
+-- data/postgresql15/ # PostgreSQL data files
+-- data/rabbitmq313/ # RabbitMQ data/mnesia
+-- data/ssl/ # TLS certificates
/etc/opt/tableau/tabrmt/
+-- master/environment.bash # Master environment variables
+-- agent/environment.bash # Agent environment variables
```
Windows 目录结构
```
C:\Program Files\Tableau\Tableau Resource Monitoring Tool\ # Install root
C:\ProgramData\Tableau\Tableau Resource Monitoring Tool\ # Data root
```
所需网络端口
| 端口 | 服务 | 方向 |
| 80 | RMT Web UI (HTTP) | 入站 |
| 443 | RMT Web UI (HTTPS) | 入站 |
| 5672 | RabbitMQ AMQP | RMT Server 上的入站 |
| 5671 | 基于 TLS 的 RabbitMQ AMQP | RMT Server 上的入站 |
| 15672 | RabbitMQ 管理 UI | 本地 |
| 25672 | RabbitMQ 节点间 | 本地 |
| 5555 | 内部 PostgreSQL | 本地 |
