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 canceled.

System and hardware

Check ID Name Platforms Failure (FAIL) / Warning (WARN) Condition
#1 Operating System Linux, Windows WARN 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
#2 Disk Space Linux, Windows FAIL RMT Server < 20 GB or Agent < 5 GB free. WARN RMT Server < 50 GB or Agent < 10 GB free
#2a Disk Type Linux, Windows INFO Reports if the drive is SSD or HDD
#3

RAM

Linux, Windows WARN RMT Server < 8 GB (minimum) or Agent < 4 GB (minimum)
#4 CPU Cores Linux, Windows WARN RMT Server < 8 GB (minimum) or Agent < 4 GB (minimum)
#4a CPU Instructions Linux, Windows FAIL (Linux): Missing sse4_2 or popcnt. WARN (Windows): Older CPU detected.
#4b VC++ Redist Windows FAIL Visual Studio 2022 C++ Redistributable missing.
#4c OpenSSL DLLs Windows INFO Checks for libcrypto-3-x64.dll and libssl-3-x64.dll
#5 System uptime Linux, Windows INFO: Notes if < 10 minutes (very recent reboot) or > 90 days (pending patches)
#6 Systemd running Linux FAIL systemd not running, PASS : Running or degraded
#7 FIPS Mode Linux, Windows FAIL (Windows): Enabled in registry, PASS FIPS disabled . WARN (Linux) Mismatch with config.json. PASS OS and config match
#7a PowerShell version Windows INFO PowerShell version
#7b System locale Windows INFO System locale information
#7c WMI Health Windows WARN WMI repository is inconsistent

 

Accounts and permissions

Check ID Name Platform Failure (FAIL) / Warning (WARN) Condition
#8 Service Account Linux, Windows FAIL RMT service account or Windows service not found
#9 Group Membership Linux FAIL Required service groups (e.g., rmtmasterapp, rmtmasterconfig, and so on) missing
#10 User Systemd Linux FAIL User systemd daemon/linger is not active
#44 pamtester installed Linux WARN if not installed. To fix this, install yum install pamtester or apt install libpam-runtime

Directory ownership and permissions for Linux

Check ID Directory Expected Owner:Group Expected Mode
#11 Config dir tabrmt-master:rmtmasterconfig 2775
#12 Log dir tabrmt-master:rmtmasterlogs 2775
#13 Data dir (+ PG/RMQ subdirs) Component-appropriate 2775
#14 Prerequisites dirs root or component user 755
#14a rabbitmq-defaults file Group-writable required g+w
#15 SSL cert dir tabrmt-master:rmtopenssl 2775
#15a Home directory Component user 770
#15b /etc/profile.d/tabrmt-*.sh root default
#15c Config dir setgid bit -- 2xxx required
#16 environment.bash Component user group-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 Name Severity
#11 Config dir ACLs FAIL if service user lacks FullControl
#12 Log dir ACLs FAIL if service user lacks Modify
#13 Data dir ACLs (RMT Server) FAIL if service user lacks FullControl on PG/RMQ data dirs
#14 Prereqs dir ACLs (RMT Server) WARN if missing ReadAndExecute (advisory — every upgrade reinstalls the prereq MSIs and their post-install actions re-apply ACLs)
#15 SSL cert dir ACLs (RMT Server) FAIL if service user lacks FullControl
#16a Service user identity PASS (informational -- shows which user the service runs as)
#16b SeServiceLogonRight privilege INFO if found; WARN if not found or secedit fails
#16c Service user ACLs on RMT dirs FAIL if service user lacks required rights

 

Database (PostgreSQL)

All PostgreSQL checks run only on the RMT Server.

Check ID Name Requires --db-password option Failure (FAIL) / Warning (WARN) Condition
#17 PG Service No FAIL Local service Stopped AND Disabled
#18 Port 5555 listening No WARN (security group / VPC / RDS hint) Not listening
#19 DB Connection Yes WARN Unable to connect to internal DB (SSL, password, or network issue)

 

Messaging (RabbitMQ)

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

Check ID Name Failure (FAIL) / Warning (WARN) Condition
#22 RMQ Service FAIL Local service Stopped AND Disabled
#24 Queue Backlog WARN Any queue that has > 10,000 messages
#25 RabbitMQ users WARN if default guest user still exists
#26 Active connections INFO only. Reports active connection count
#27 Erlang cookie accessible WARN if cookie file missing, if permissions wrong (should be mode 400 or 600)
#27a ERLANG_HOME set WARN (Windows only) if `ERLANG_HOME` not set or path does not exist.
#27b SSL Validity FAIL Certificates are expired
#27c Disk Alarm FAIL < 10 GB free on RMQ partition (Upgrade will hang)
#45 Certificate directory populated WARN if cert dir exists but is empty or missing expected certificate files (server cert, key, CA cert)

Network and configuration

Check ID Name Failure (FAIL) / Warning (WARN) Condition
#28a/b Agent-Master Comms WARN Agent cannot reach Master on 5671, 5672, 80, or 443
#33-35 JSON/Bash Config FAIL Missing or invalid config.json, setup.json, or environment.bash
#36a Known-Bad Version FAIL Current version is 2025.3.0 (Regression blocks upgrade)

Services and backup

Check ID Name Failure (FAIL) / Warning (WARN) Condition
#38 All RMT services running WARN for each stopped service
#38a Stranded Processes FAIL Lingering tabrmt-* processes found after services stopped
#39 Background processor running WARN if the host process is not running
#40 Pre-upgrade backup reminder WARN as a reminder to back up configuration before upgrading
#41 Topology INFO only. Reports Master/Agent node type and (with DB) active agent count
#42 Component version inventory INFO only. Reports RMT, PostgreSQL, RabbitMQ, OpenSSL versions
#43 Machine specs summary INFO 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 ID Name Component Failure (FAIL) / Warning (WARN) Condition
#1a-d Services and processes RMT Server, Agent FAIL Main, PG, or RMQ services are not running
#2 Host process Supervisor RMT Server, Agent WARN Host supervisor process missing (No auto-recovery)
#3a-b Configuration file integrity RMT Server, Agent FAIL if missing or invalid JSON
#4a-b File Permissions RMT Server, Agent FAIL Config/Log dirs not readable/writable by service account
#5a-d Port Listening RMT Server FAIL Web (443), AMQP (5672), or DB (5555) not listening
#6 PostgreSQL Connectivity RMT Server FAIL PostgreSQL not accepting connections
#7 RabbitMQ status RMT Server SKIP if external. FAIL after all retries exhausted.
#8a Queue Consumers RMT Server WARN Backlog exists but no active consumers (Master workers disconnected)
#9 RMQ Alarms RMT Server FAIL Active Memory or Disk resource alarms detected
#10 RabbitMQ SSL certificate RMT Server FAIL if certificate expired. WARN if certificates expires within 30 days
#11 FIPS Match RMT Server, Agent FAIL OS FIPS state mismatches isFIPSEnabled config
#12 Web server HTTP response RMT Server Makes HTTP GET to `https://localhost:<port>/authentication/login`. PASS on 200 or 302. FAIL on connection refused/timeout. WARN on other errors.
#13 HTTPS certificate validity RMT Server FAIL Web server TLS certificate is expired
#14a-d Disk Space RMT Server, Agent FAIL < 1 GB free. WARN: < 5 GB free
#15 Recent Log Errors RMT Server, Agent FAIL FATAL errors in logs. WARN: CRITICAL errors
#16 RMT Status RMT Server, Agent FAIL rmtadmin status returns failure patterns
#17 Agent log history Agent Checks log tracking files (.history, .json) in the agent data directory. WARN if files are unreadable or corrupt
#18a-f Inventory Version RMT Server, Agent INFO 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 Code Status Upgrade Behavior
0 READY TO UPGRADE Upgrade proceeds
1 UPGRADE WITH CAUTION Upgrade proceeds; review warnings
2 Do not upgrade Upgrade canceled
3 Script Error Check execution environment

Post-upgrade scripts

Exit Code Status
0 ALL PASSED
1 WARNINGS PRESENT
2 CRITICAL 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) behavior 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 Default InstallerContext
#17 PG Service WARN if Stopped, FAIL if Stopped and Disabled, INFO if all stopped WARN
#18 PG Port WARN if not listening, INFO if all services stopped WARN
#22 RabbitMQ Service WARN if Stopped, FAIL if Stopped+Disabled, INFO if all stopped WARN
#23 Port 5672 (AMQP) WARN if not listening, INFO if all services stopped WARN
#38a Stranded RMT Processes (see check description) SKIP (installer manages process lifecycle)

Pre-upgrade thresholds

Threshold RMT Server Agent Unit
Disk space FAIL 20 5 GB free
Disk space WARN 50 10 GB free
Temp dir FAIL 5 5 GB free
Temp dir WARN 10 10 GB free
RAM FAIL 8 4 GB
RAM WARN 16 8 GB
CPU FAIL 4 2 cores
CPU WARN 8 4 cores
Database size FAIL 500 - GB
Database size WARN 200 - GB
Hangfire schema FAIL 10 - GB
Hangfire schema WARN 1 - GB
WAL dir FAIL (Windows) 10 - GB
WAL dir FAIL (Windows) 2 - GB
WAL dir FAIL (Linux) 10 - GB
Mnesia dir WARN 5 - GB
RabbitMQ disk alarm FAIL 10 - GB free
Queue backlog WARN 10,000 - messages
Certificate expiry WARN 30 30 days
Cleanup retention WARN 180 - days
Dead tuple ratio WARN 20 - percent
Agent heartbeat stale 15 - minutes
Network driver age WARN 3 - years
Log dir size WARN 5 5 GB
Log dir size WARN (severe) 20 20 GB

Post-upgrade thresholds

Threshold Value Unit
Disk space FAIL 1 GB free
Disk space WARN 5 GB free
Certificate expiry WARN 30 days
Queue backlog WARN 10,000 messages
Log scan window 60 minutes
RabbitMQ startup retry 6 attempts x 5 sec 30 seconds total

 

Minimum supported component versions

Component Minimum 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

Port Service Direction
80 RMT Web UI (HTTP) Inbound
443 RMT Web UI (HTTPS) Inbound
5672 RabbitMQ AMQP Inbound on RMT Server
5671 RabbitMQ AMQP over TLS Inbound on RMT Server
15672 RabbitMQ Management UI Local
25672 RabbitMQ inter-node Local
5555 Internal PostgreSQL Local
Thanks for your feedback!Your feedback has been successfully submitted. Thank you!