RMT 升級:技術參考
本區段是在升級過程中檢查的運作閾值、系統路徑和網路連接埠的技術參考指南。使用這些資料表可快速診斷驗證失敗,並使環境與所需的 RMT 基準保持一致。
附註:為了符合本公司平等的價值觀,我們已將 RMT 主伺服器更新為 RMT 伺服器。在某些情況下,RMT 伺服器安裝路徑和命令可能會使用術語「主機」而不是「伺服器」。因此,可以繼續在 CLI 命令和選項、安裝資料夾、設定檔和其他執行個體中看到這些術語。有關詳情,請參閱關於 Tableau 說明(連結在新視窗開啟)。
升級前健康情況檢查
升級前健康情況檢查會在現有安裝仍然完好無損時檢查 RMT 伺服器或代理程式主機,例如服務正在執行、資料庫可存取,並產生詳細的 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 伺服器 < 20 GB 或代理程式 < 5 GB 可用。WARN RMT 伺服器 < 50 GB 或代理程式 < 10 GB 可用 |
| #2a | 磁碟類型 | Linux、Windows | INFO 回報磁碟機是 SSD 還是 HDD |
| #3 | RAM | Linux、Windows | WARN RMT 伺服器 < 8 GB(最小)或代理程式 < 4 Gb(最小) |
| #4 | CPU 核心 | Linux、Windows | WARN RMT 伺服器 < 8 GB(最小)或代理程式 < 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:若已過期 90 天,則 < 10 minutes (very recent reboot) or > 為附註(擱置修補檔) |
| #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 檔案 | 需要群組可寫入 | g+w |
| #15 | SSL 憑證目錄 | tabrmt-master:rmtopenssl | 2775 |
| #15a | 主目錄 | 元件使用者 | 770 |
| #15b | /etc/profile.d/tabrmt-*.sh | root | 預設 |
| #15c | Config dir setgid 位元 | -- | 需要 2xxx |
| #16 | environment.bash | 元件使用者 | group-writable |
嚴重性:對僅資料目錄集(#13 和 #15)的所有權為 FAIL。所有其他 Linux 目錄檢查(#11、#12、#14、#14a、#15a–c、#16)會在所有權/模式不相符時為 WARN,因為安裝程式的後續安裝會在升級期間重新套用所有權。如果權限模式錯誤但擁有權正確,則為 WARN。
Windows 的目錄所有權和權限
| 檢查 | 名稱 | 嚴重性 |
| #11 | 設定目錄 ACL | 如果服務使用者缺乏 FullControl,則為 FAIL |
| #12 | 記錄目錄 ACL | 如果服務使用者缺少修改,則為 FAIL |
| #13 | 資料目錄 ACL(RMT 伺服器) | 如果服務使用者缺乏對 PG/RMQ 資料目錄的 FullControl,則為 FAIL |
| #14 | 必要條件目錄 ACL(RMT 伺服器) | 如果缺少 ReadAndExecute,則為 WARN(諮詢 - 每次升級都會重新安裝必要的 MSI,其安裝後動作會重新套用 ACL) |
| #15 | SSL 憑證方向 ACL(RMT Server) | 如果服務使用者缺乏 FullControl,則為 FAIL |
| #16a | 服務使用者身分 | PASS(資訊性 - 顯示以哪個使用者身分執行服務) |
| #16b | SeServiceLogonRight 權限 | 如果找到將顯示 INFO;如果找不到則為 WARN 或 secedit 失敗 |
| #16c | RMT 目錄上的服務使用者 ACL | 如果服務使用者缺乏必要的權限則為 FAIL |
資料庫 (PostgreSQL)
所有 PostgreSQL 檢查都只能在 RMT 伺服器上執行。
| 檢查 ID | 名稱 | 需要 --db-password 選項 | 失敗 (FAIL) /警告 (WARN) 條件 |
| #17 | PG 服務 | 否 | FAIL 本機服務已停止且已停用 |
| #18 | 連接埠 5555 偵聽 | 否 | WARN(安全性群組/VPC / RDS 提示)不接聽 |
| #19 | DB Connection | 是 | WARN 無法連線到內部資料庫(SSL、密碼或網路問題) |
訊息傳遞 (RabbitMQ)
訊息 (RabbitMQ) 檢查僅在 RMT 伺服器上執行。
| 檢查 ID | 名稱 | 失敗 (FAIL) /警告 (WARN) 條件 |
| #22 | RMQ 服務 | FAIL 本機服務已停止且已停用 |
| #24 | 佇列待辦項目 | WARN 任何具有> 10,000 則訊息的佇列 |
| #25 | RabbitMQ 使用者 | 如果預設 guest 使用者仍然存在,則為 WARN |
| #26 | 活動中的連線 | 僅為 INFO。報告活動連線計數 |
| #27 | Erlang cookie 可存取 | 如果缺少 cookie 檔案、權限錯誤則為 WARN(應為模式 400 或 600) |
| #27a | ERLANG_HOME 集 | 如果未設定 `ERLANG_HOME` 或路徑不存在,則為 WARN(僅限 Windows)。 |
| #27b | SSL 有效性 | FAIL 憑證已過期 |
| #27c | 磁碟通知 | FAIL RMQ分割區可用空間 < 10GB(升級將會卡住) |
| #45 | 已填入憑證目錄 | 如果憑證目錄存在但為空或缺少預期的憑證檔案(伺服器憑證、金鑰、CA 憑證),則為 WARN |
網路和設定
| 檢查 ID | 名稱 | 失敗 (FAIL) /警告 (WARN) 條件 |
| #28a/b | 代理程式-主機通訊 | WARN 客服專員無法撥打 5671、5672、80 或 443 聯絡主機 |
| #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。報告主要/代理程式節點類型和(帶資料庫)作用中代理程式計數 |
| #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 伺服器 | 如果是外部,則為 SKIP。所有重試用盡後 FAIL。 |
| #8a | 佇列取用者 | RMT Server | WARN 存在待辦項目,但沒有活動中的取用者(主要工作者已中斷連線) |
| #9 | RMQ 通知 | RMT Server | FAIL 偵測到使用中記憶體或磁碟資源警示 |
| #10 | RabbitMQ SSL 憑證 | RMT 伺服器 | 如果憑證過期,則為 FAIL。如果憑證在 30 天內過期,則為 WARN |
| #11 | FIPS 配對 | RMT Server, Agent | FAIL 作業系統 FIPS 狀態不符合 isFIPSEnabled 設定 |
| #12 | Web 伺服器 HTTP 回應 | RMT 伺服器 | 使 HTTP GET 為 `https://localhost:<port>/authentication/login`。PASS 200 或 302。連線拒絕/逾時為 FAIL。其他錯誤為 WARN。 |
| #13 | HTTPS 憑證有效性 | RMT Server | FAIL Web 伺服器 TLS 憑證已過期 |
| #14a-d | 磁碟空間 | RMT Server, Agent | FAIL < 1 GB 可用。WARN:< 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 | 有關 RMT 版本、PostgreSQL 版本、RabbitMQ 版本、Erlang/OTP 版本、.NET 執行階段 (Windows) / 作業系統 (Linux)、作業系統版本 (Windows) / 核心 (Linux) 的 INFO |
健康情況檢查結束代碼
使用以下結束代碼來解譯升級前和升級後健康情況檢查指令碼的結果。
升級前指令碼
| 結束代碼 | 狀態 | 升級行為 |
| 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` 下,即使是 `Disabled` 分支也會報告為「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 伺服器上的傳入 |
| 5671 | 基於 TLS 的 RabbitMQ AMQP | RMT 伺服器上的傳入 |
| 15672 | RabbitMQ 管理 UI | 本機 |
| 25672 | RabbitMQ 節點之間 | 本機 |
| 5555 | 內部 PostgreSQL | 本機 |
