RMT Upgrade: Technical Reference

This section is a technical reference guide for the operational thresholds, system paths and network ports checked during the upgrade process. Use these tables to quickly diagnose validation failures and align your environment with required RMT baselines.

Note: To align with our company values of Equality, we have updated RMT Master to RMT Server. In some cases, RMT Server installation paths and commands may use the term ‘master’ instead of ‘server’. So, you may continue to see the term in CLI commands and options, installation folders, configuration files and other instances. For more information, see About Tableau Help(Link opens in a new window)..

Pre-upgrade health checks

The pre-upgrade health check inspects your RMT Server or Agent host while the existing installation is still intact like services running, database accessible and generates a detailed PASS / FAIL / WARN report. It runs over 80 individual checks across system resources, accounts, file permissions, PostgreSQL, RabbitMQ, networking, configuration files and RMT services. The following table lists the checks performed before the upgrade. If any item returns a FAIL status (Exit Code 2), the upgrade is cancelled.

System and hardware

Check IDName PlatformsFailure (FAIL) / Warning (WARN) Condition
#1Operating SystemLinux, WindowsWARN OS version is not in the pre-check allow-list. The supported list is 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
#2Disk SpaceLinux, WindowsFAIL RMT Server < 20 GB or Agent < 5 GB free. WARN RMT Server < 50 GB or Agent < 10 GB free
#2aDisk TypeLinux, WindowsINFO Reports if the drive is SSD or HDD
#3

RAM

Linux, WindowsWARN RMT Server < 8 GB (minimum) or Agent < 4 GB (minimum)
#4CPU CoresLinux, WindowsWARN RMT Server < 8 GB (minimum) or Agent < 4 GB (minimum)
#4aCPU InstructionsLinux, WindowsFAIL (Linux): Missing sse4_2 or popcnt. WARN (Windows): Older CPU detected.
#4bVC++ RedistWindowsFAIL Visual Studio 2022 C++ Redistributable missing.
#4cOpenSSL DLLsWindowsINFO Checks for libcrypto-3-x64.dll and libssl-3-x64.dll
#5System uptimeLinux, WindowsINFO: Notes if < 10 minutes (very recent reboot) or > 90 days (pending patches)
#6Systemd runningLinuxFAIL systemd not running, PASS : Running or degraded
#7FIPS ModeLinux, WindowsFAIL (Windows): Enabled in registry, PASS FIPS disabled . WARN (Linux) Mismatch with config.json. PASS OS and config match
#7aPowerShell versionWindowsINFO PowerShell version
#7bSystem localeWindowsINFO System locale information
#7cWMI HealthWindowsWARN WMI repository is inconsistent

 

Accounts and permissions

Check IDName PlatformFailure (FAIL) / Warning (WARN) Condition
#8Service AccountLinux, WindowsFAIL RMT service account or Windows service not found
#9Group MembershipLinuxFAIL Required service groups (e.g. rmtmasterapp, rmtmasterconfig, and so on) missing
#10User SystemdLinuxFAIL User systemd daemon/linger is not active
#44pamtester installedLinuxWARN if not installed. To fix this, install yum install pamtester or apt install libpam-runtime

Directory ownership and permissions for Linux

Check IDDirectory Expected Owner:GroupExpected Mode
#11Config dirtabrmt-master:rmtmasterconfig2775
#12Log dirtabrmt-master:rmtmasterlogs2775
#13Data dir (+ PG/RMQ subdirs)Component-appropriate2775
#14Prerequisites dirsroot or component user755
#14arabbitmq-defaults fileGroup-writable requiredg+w
#15SSL cert dirtabrmt-master:rmtopenssl2775
#15aHome directoryComponent user770
#15b/etc/profile.d/tabrmt-*.shrootdefault
#15cConfig dir setgid bit--2xxx required
#16environment.bashComponent usergroup-writable

Severity: FAIL on ownership only for the data-dir set (#13 and #15). All other Linux directory checks (#11, #12, #14, #14a, #15a–c, #16) emit WARN on ownership/mode mismatches because the installer’s post install re-applies ownership during upgrade. WARN if permission mode is wrong but ownership is correct.

Directory ownership and permissions for Windows

Check NameSeverity
#11Config dir ACLsFAIL if service user lacks FullControl
#12Log dir ACLsFAIL if service user lacks Modify
#13Data dir ACLs (RMT Server)FAIL if service user lacks FullControl on PG/RMQ data dirs
#14Prereqs dir ACLs (RMT Server)WARN if missing ReadAndExecute (advisory – every upgrade reinstalls the prereq MSIs and their post-install actions re-apply ACLs)
#15SSL cert dir ACLs (RMT Server)FAIL if service user lacks FullControl
#16aService user identityPASS (informational -- shows which user the service runs as)
#16bSeServiceLogonRight privilegeINFO if found; WARN if not found or secedit fails
#16cService user ACLs on RMT dirsFAIL if service user lacks required rights

 

Database (PostgreSQL)

All PostgreSQL checks run only on the RMT Server.

Check IDName Requires --db-password optionFailure (FAIL) / Warning (WARN) Condition
#17PG ServiceNoFAIL Local service Stopped AND Disabled
#18Port 5555 listeningNoWARN (security group / VPC / RDS hint) Not listening
#19DB ConnectionYesWARN Unable to connect to internal DB (SSL, password or network issue)

 

Messaging (RabbitMQ)

The Messaging (RabbitMQ) checks run only on the RMT Server.

Check IDName Failure (FAIL) / Warning (WARN) Condition
#22RMQ ServiceFAIL Local service Stopped AND Disabled
#24Queue BacklogWARN Any queue that has > 10,000 messages
#25RabbitMQ usersWARN if default guest user still exists
#26Active connectionsINFO only. Reports active connection count
#27Erlang cookie accessibleWARN if cookie file missing, if permissions wrong (should be mode 400 or 600)
#27aERLANG_HOME setWARN (Windows only) if `ERLANG_HOME` not set or path does not exist.
#27bSSL ValidityFAIL Certificates are expired
#27cDisk AlarmFAIL < 10 GB free on RMQ partition (Upgrade will hang)
#45Certificate directory populatedWARN if cert dir exists but is empty or missing expected certificate files (server cert, key, CA cert)

Network and configuration

Check IDName Failure (FAIL) / Warning (WARN) Condition
#28a/bAgent-Master CommsWARN Agent cannot reach Master on 5671, 5672, 80 or 443
#33-35JSON/Bash ConfigFAIL Missing or invalid config.json, setup.json or environment.bash
#36aKnown-Bad VersionFAIL Current version is 2025.3.0 (Regression blocks upgrade)

Services and backup

Check IDName Failure (FAIL) / Warning (WARN) Condition
#38All RMT services runningWARN for each stopped service
#38aStranded ProcessesFAIL Lingering tabrmt-* processes found after services stopped
#39Background processor runningWARN if the host process is not running
#40Pre-upgrade backup reminderWARN as a reminder to back up configuration before upgrading
#41TopologyINFO only. Reports Master/Agent node type and (with DB) active agent count
#42Component version inventoryINFO only. Reports RMT, PostgreSQL, RabbitMQ, OpenSSL versions
#43Machine specs summaryINFO only. Reports OS, CPU cores, RAM, free disk space

 

Post-upgrade health checks

These checks run after the upgrade. They are non-blocking and failures do not stop the upgrade but indicate post-install issues.

Check IDName ComponentFailure (FAIL) / Warning (WARN) Condition
#1a-dServices and processesRMT Server, AgentFAIL Main, PG or RMQ services are not running
#2Host process SupervisorRMT Server, AgentWARN Host supervisor process missing (No auto-recovery)
#3a-bConfiguration file integrityRMT Server, AgentFAIL if missing or invalid JSON
#4a-bFile PermissionsRMT Server, AgentFAIL Config/Log dirs not readable/writable by service account
#5a-dPort ListeningRMT ServerFAIL Web (443), AMQP (5672), or DB (5555) not listening
#6PostgreSQL ConnectivityRMT ServerFAIL PostgreSQL not accepting connections
#7RabbitMQ statusRMT ServerSKIP if external. FAIL after all retries exhausted.
#8aQueue ConsumersRMT ServerWARN Backlog exists but no active consumers (Master workers disconnected)
#9RMQ AlarmsRMT ServerFAIL Active Memory or Disk resource alarms detected
#10RabbitMQ SSL certificateRMT ServerFAIL if certificate expired. WARN if certificates expires within 30 days
#11FIPS MatchRMT Server, AgentFAIL OS FIPS state mismatches isFIPSEnabled config
#12Web server HTTP responseRMT ServerMakes HTTP GET to ‘https://localhost:<port>/authentication/login’. PASS on 200 or 302. FAIL on connection refused/timeout. WARN on other errors.
#13HTTPS certificate validityRMT ServerFAIL Web server TLS certificate is expired
#14a-dDisk SpaceRMT Server, AgentFAIL < 1 GB free. WARN: < 5 GB free
#15Recent Log ErrorsRMT Server, AgentFAIL FATAL errors in logs. WARN: CRITICAL errors
#16RMT StatusRMT Server, AgentFAIL rmtadmin status returns failure patterns
#17Agent log historyAgentChecks log tracking files (.history, .json) in the agent data directory. WARN if files are unreadable or corrupt
#18a-fInventory VersionRMT Server, AgentINFO about RMT version, PostgreSQL version, RabbitMQ version, Erlang/OTP version, .NET Runtime (Windows) / OS (Linux), OS version (Windows) / Kernel (Linux)

Health check exit codes

Use the following exit codes to interpret the results of both the pre-upgrade and post-upgrade health check scripts.

Pre-upgrade scripts

Exit CodeStatus Upgrade Behaviour
0READY TO UPGRADEUpgrade proceeds
1UPGRADE WITH CAUTIONUpgrade proceeds; review warnings
2Do not upgradeUpgrade cancelled
3Script ErrorCheck execution environment

Post-upgrade scripts

Exit CodeStatus
0ALL PASSED
1WARNINGS PRESENT
2CRITICAL FAILURES

InstallerContext severity changes

When run with -InstallerContext during automatic Windows MSI upgrades, the following checks behave differently from the manual default. The default (non-InstallerContext) behaviour is *already* WARN for ‘stopped but not Disabled’ / ‘port not listening’ states; FAIL is reserved for ‘Stopped+Disabled’. Under `-InstallerContext`, even the ‘Disabled’ branch is reported as WARN so an in-flight installer-driven upgrade is never vetoed by a transient state the installer is about to fix.

Check Name DefaultInstallerContext
#17PG ServiceWARN if Stopped, FAIL if Stopped and Disabled, INFO if all stoppedWARN
#18PG PortWARN if not listening, INFO if all services stoppedWARN
#22RabbitMQ ServiceWARN if Stopped, FAIL if Stopped+Disabled, INFO if all stoppedWARN
#23Port 5672 (AMQP)WARN if not listening, INFO if all services stoppedWARN
#38aStranded RMT Processes(see check description)SKIP (installer manages process lifecycle)

Pre-upgrade thresholds

Threshold RMT Server AgentUnit
Disk space FAIL205GB free
Disk space WARN5010GB free
Temp dir FAIL55GB free
Temp dir WARN1010GB free
RAM FAIL84GB
RAM WARN168GB
CPU FAIL42cores
CPU WARN84cores
Database size FAIL500-GB
Database size WARN200-GB
Hangfire schema FAIL10-GB
Hangfire schema WARN1-GB
WAL dir FAIL (Windows)10-GB
WAL dir FAIL (Windows)2-GB
WAL dir FAIL (Linux)10-GB
Mnesia dir WARN5-GB
RabbitMQ disk alarm FAIL10-GB free
Queue backlog WARN10,000-messages
Certificate expiry WARN3030days
Cleanup retention WARN180-days
Dead tuple ratio WARN20-percent
Agent heartbeat stale15-minutes
Network driver age WARN3-years
Log dir size WARN55GB
Log dir size WARN (severe)2020GB

Post-upgrade thresholds

ThresholdValue Unit
Disk space FAIL1GB free
Disk space WARN5GB free
Certificate expiry WARN30days
Queue backlog WARN10,000messages
Log scan window60minutes
RabbitMQ startup retry6 attempts x 5 sec30 seconds total

 

Minimum supported component versions

ComponentMinimum Version
RabbitMQ>= 3.10.10
Agent version>= 2023.1.0

Automation and CI/CD Integration

For 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
```

For Windows:

```powershell
# Windows
.\rmt-pre-upgrade-check.ps1 -Component master
if ($LASTEXITCODE -eq 2) {
Write-Error "BLOCKED: Fix critical issues before upgrading"
exit 1
}
```

 

Installation directory reference

To manually invoke the underlying diagnostic utilities or verify your installation structure, refer to the platform-specific directory paths:

Linux directory structure

```

/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 directory structure

```

C:\Program Files\Tableau\Tableau Resource Monitoring Tool\ # Install root

C:\ProgramData\Tableau\Tableau Resource Monitoring Tool\ # Data root

```

Required network ports

PortService Direction
80RMT Web UI (HTTP)Inbound
443RMT Web UI (HTTPS)Inbound
5672RabbitMQ AMQPInbound on RMT Server
5671RabbitMQ AMQP over TLSInbound on RMT Server
15672RabbitMQ Management UILocal
25672RabbitMQ inter-nodeLocal
5555Internal PostgreSQLLocal
Thanks for your feedback!Your feedback has been successfully submitted. Thank you!