RMT 升級健康情況檢查指令碼

從 2025.3.6 版本開始,RMT 安裝程式包括升級前和升級後健康情況檢查指令碼,用於在升級前後驗證 Tableau Resource Monitoring Tool (RMT) 環境。這些指令碼可識別環境中預先存在的問題,例如設定錯誤、權限漂移、磁碟空間不足、憑證過期或之前存在的服務故障,並可能導致任何升級失敗。

升級前和升級後健康情況檢查指令碼可以識別以下問題:

  • 資料庫和磁碟就緒情況:偵測大型資料庫或過多的 WAL 檔案是否會導致移轉擱置或耗盡磁碟空間。

  • 權限和安全完整性:識別轉移的檔案所有權或過期的 SSL 憑證,否則這些憑證會阻止服務重新啟動或代理程式重新連線。

  • 相依性驗證:確保在安裝 PostgreSQL 15 之前存在所需的 Windows 元件,例如 Visual C++ 2022 Redistributable 和 OpenSSL 3.x。

  • 版本邏輯安全性:防止版本中繼資料回歸引起的「錯誤降級」錯誤。

升級前指令碼

開始升級時,升級前指令碼會自動執行。它會在現有安裝仍然完好無損時檢查您的 RMT 伺服器或代理程式主機,並產生 PASS / FAIL / WARN 報告。

對於 Linux,升級前檢查會自動執行:

sudo bash upgrade-rmt-master ...
sudo bash upgrade-rmt-agent ...

要跳過自動檢查(不建議):

sudo bash upgrade-rmt-master --skip-pre-upgrade-check ...

對於 Windows,安裝程式會自動執行升級前檢查。在安裝過程中,系統也會提示您選擇跳過升級。但是,不建議這樣做。

手動升級前檢查

您可以手動執行指令碼來預覽任何潛在問題。若要手動執行,請根據作業系統使用以下步驟:

如果是 Linux:

以根使用者身分執行命令。若要包括資料庫檢查,請使用匯出命令安全地傳遞密碼。

sudo bash /opt/tableau/tabrmt/master/install-scripts/rmt-pre-upgrade-check.sh

若要在啟用 PostgreSQL 檢查的情況下執行,請使用以下命令:

export RMT_DB_PASSWORD="<tabrmtdb-password>"
sudo -E bash /opt/tableau/tabrmt/master/install-scripts/rmt-pre-upgrade-check.sh

若要使用特定元件和輸出路徑執行,請使用以下命令:

sudo bash rmt-pre-upgrade-check.sh --component master --output /tmp/rmt-report.txt

如果是 Windows:

預設情況下,RMT 伺服器的升級前檔案安裝在以下位置:

C:\Program Files\Tableau\Tableau Resource Monitoring Tool\master\scripts\pre-upgrade\rmt-pre-upgrade-check.ps1

預設情況下,代理程式的升級前檔案安裝在以下位置:

C:\Program Files\Tableau\Tableau Resource Monitoring Tool\agent\scripts\pre-upgrade\rmt-pre-upgrade-check.ps1

若要手動執行指令碼,請以管理員身分啟動 PowerShell,然後執行:

cd "C:\Program Files\Tableau\Tableau Resource Monitoring Tool\master\scripts\pre-upgrade"

.\rmt-pre-upgrade-check.ps1

若要在啟用 PostgreSQL 檢查的情況下執行,請使用以下命令:

$env:RMT_DB_PASSWORD = "<tabrmtdb-password>"
.\rmt-pre-upgrade-check.ps1

若要使用特定元件和輸出路徑執行,請使用以下命令:

.\rmt-pre-upgrade-check.ps1 -Component master -OutputPath C:\temp\rmt-report.txt

其他選項

使用以下選項自訂升級前檢查:

-Component

指定 RMT 伺服器或代理程式。若省略,指令碼會自動偵測此情況

--db-password / -DbPassword

內部 RMT 資料庫管理員密碼。PostgreSQL 檢查所需。

--output / -OutputPath

指定儲存報告的位置。預設情況下,其會儲存至 /tmp/ (Linux) or C:\temp\ (Windows).

--target-version / -TargetVersion

計劃安裝的 RMT 版本啟用;特定於版本的檢查。

--quiet / -Quiet

篩選輸出以僅顯示 FAIL 和 WARN 的結果。

--verbose / -Verbose

輸出顯示執行每次檢查的詳細技術資料。

指令碼結果和所需動作

下表說明指令碼結果和動作:

結果狀態動作
PASS結束代碼 0未發現任何問題。升級將繼續進行。
WARN結束代碼 1升級將繼續進行,但必須檢閱報告中是否存在非嚴重風險。
FAIL結束代碼 2升級已中止。必須先解決這些問題,才能重新執行升級。

升級後指令碼

升級後健康情況檢查指令碼會在每次 RMT 安裝和升級結束時自動執行。它驗證所有服務是否正確啟動、基礎結構是否健康且設定是否完好無損。升級後檢查不會封鎖安裝程式。所有已識別的故障都會記錄在最終報告中。

手動升級後檢查

若要手動執行,請根據作業系統使用以下步驟:

如果是 Linux:

以根使用者身分或具有權限執行 sudo 以下命令:

  • 對於 RMT 伺服器:

sudo bash /opt/tableau/tabrmt/master/install-scripts/rmt-post-upgrade-check --component master --mode upgrade
  • 對於代理程式:

sudo bash /opt/tableau/tabrmt/agent/install-scripts/rmt-post-upgrade-check --component agent --mode upgrade

如果是 Windows:

預設情況下,RMT 伺服器的升級後檔案安裝在以下位置:

C:\Program Files\Tableau\Tableau Resource Monitoring Tool\master\scripts\post-upgrade\rmt-post-upgrade-check.ps1

預設情況下,代理程式的升級後檔案安裝在以下位置:

C:\Program Files\Tableau\Tableau Resource Monitoring Tool\agent\scripts\post-upgrade\rmt-post-upgrade-check.ps1

若要手動執行指令碼,請以管理員身分開啟 PowerShell,並在執行命令前巡覽至 RMT 安裝目錄:

  • 對於 RMT 伺服器:

.\rmt-post-upgrade-check.ps1 -Component master -Mode upgrade
  • 對於代理程式:

.\rmt-post-upgrade-check.ps1 -Component agent -Mode upgrade

其他選項

可以使用以下選項自訂指令碼:

--component / -Component

指定 RMT 伺服器或代理程式。如果省略,指令碼將嘗試自動偵測這一點。

--db-password / -DbPassword

內部 RMT 資料庫管理員的密碼。這是啟用 PostgreSQL 檢查的必要步驟。

--output / -OutputPath

報告檔案將儲存的路徑。預設為 /tmp/ (Linux) C:\temp\ (Windows)

--target-version / -TargetVersion

要升級到的特定 RMT 版本,用於特定於版本的檢查。

--quiet / -Quiet

減少輸出以僅顯示FAILWARN的結果。

--verbose / -VerboseOutput

為執行的每項檢查提供詳細的技術輸出。

附註:建議將 RMT_DB_PASSWORD 設定為環境變數,而不是在命令列上傳遞,因為命令列引數會在處理序清單中可見。

指令碼結果和所需動作

下表說明指令碼結果和動作:

結果狀態動作
PASS結束代碼 0系統正常。沒有需要採取的動作。
WARN結束代碼 1查看警告;大多數會自行解決(例如,暫時的 RabbitMQ 啟動延遲)。
FAIL結束代碼 2一項或多項關鍵檢查失敗 - 調查並重新修復。

報告

可以在這裡找到升級前報告:

  • Linux:/tmp/rmt-precheck-<timestamp>.txt

  • Windows(手動):C:\temp\rmt-precheck-<component>-<timestamp>.txt

可以在這裡找到升級後的報告:

  • Linux:<log-dir>/rmt-postcheck-report.txt

  • Windows(手動):C:\temp\rmt-postcheck-<component>-<timestamp>.txt

  • Windows(透過安裝程式):安裝程式執行檢查時,它會使用固定檔案名稱:

    • C:\temp\rmt-postcheck-master-report.txt

    • C:\temp\rmt-postcheck-agent-report.txt

    有關報告中升級前和升級後檢查的詳情,請參閱升級參考區段。

範例報告

以下是升級前健康情況檢查報告範例:

==================================================================
RMT Pre-Upgrade Health Check Report
Script Version : 1.0.0
Generated : 2026-04-08 14:30:00
Component : master
Hostname : rmt-master-01.example.com
RMT Version : 2025.1.9
==================================================================
OVERALL STATUS : UPGRADE WITH CAUTION (2 warning(s) -- review before proceeding)
PASS: 44 FAIL: 0 WARN: 2 INFO: 10 SKIP: 3
==================================================================
WARNINGS -- Review Before Upgrading
==================================================================
[WARN] #21d Hangfire schema is 1.2 GB
Check 21g for delete_hash() volatility bug
[WARN] #24 1 queue(s) with >10000 messages (max: 15234)
Resolve backlogs before upgrading

 

 

 

 

感謝您的意見反應!已成功提交您的意見回饋。謝謝!