Aggiornamento di RMT: informazioni tecniche di riferimento
Questa sezione è una guida tecnica di riferimento per le soglie operative, i percorsi di sistema e le porte di rete controllati durante il processo di aggiornamento. Utilizza queste tabelle per diagnosticare rapidamente gli errori di convalida e allineare l’ambiente alle linee base RMT richieste.
Nota: per allinearci con i nostri valori aziendali di uguaglianza, abbiamo aggiornato il nome di RMT Master in RMT Server. In alcuni casi, i percorsi di installazione e i comandi di RMT Server possono utilizzare il termine “master” invece di “server”. Potrai quindi continuare a vedere il termine nei comandi e nelle opzioni dell’interfaccia a riga di comando, nelle cartelle di installazione, nei file di configurazione e in altri casi. Per maggiori informazioni, consulta Informazioni sulla Guida di Tableau(Il collegamento viene aperto in una nuova finestra).
Controlli di integrità pre-aggiornamento
Il controllo di integrità pre-aggiornamento esamina RMT Server o l’host agente mentre l’installazione esistente è ancora intatta. Controlla ad esempio i servizi in esecuzione, e il database accessibile, e genera un report PASS/FAIL/WARN dettagliato. Esegue oltre 80 controlli individuali su risorse di sistema, account, autorizzazioni sui file, PostgreSQL, RabbitMQ, rete, file di configurazione e servizi RMT. Nella tabella che segue sono elencati i controlli eseguiti prima dell’aggiornamento. Se un elemento restituisce lo stato FAIL (codice di uscita 2), l’aggiornamento viene annullato.
Sistema e hardware
| ID controllo | Nome | Piattaforme | Condizione di errore (FAIL)/avviso (WARN) |
| #1 | Sistema operativo | Linux, Windows | WARN: la versione del sistema operativo non è presente nell’elenco consentiti del controllo preliminare. L’elenco supportato è 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 | Spazio su disco | Linux, Windows | FAIL: RMT Server con < 20 GB liberi o agente con < 5 GB liberi. WARN: RMT Server con < 50 GB liberi o agente con < 10 GB liberi |
| #2a | Tipo di disco | Linux, Windows | INFO: indica se l’unità è SSD o HDD |
| #3 | RAM | Linux, Windows | WARN: RMT Server con < 8 GB (minimo) o agente con < 4 GB (minimo) |
| #4 | Core CPU | Linux, Windows | WARN: RMT Server con < 8 GB (minimo) o agente con < 4 GB (minimo) |
| #4a | Istruzioni CPU | Linux, Windows | FAIL (Linux): sse4_2 o popcnt mancante. WARN (Windows): CPU precedente rilevata. |
| #4b | VC++ Redist | Windows | FAIL: Visual Studio 2022 C++ Redistributable mancante. |
| #4c | OpenSSL DLLs | Windows | INFO: verifica la presenza di libcrypto-3-x64.dll e libssl-3-x64.dll |
| #5 | Tempo di attività del sistema | Linux, Windows | INFO: nota se < 10 minuti (riavvio molto recente) o > 90 giorni (patch in sospeso) |
| #6 | Systemd in esecuzione | Linux | FAIL: systemd non in esecuzione, PASS: in esecuzione o danneggiato |
| #7 | Modalità FIPS | Linux, Windows | FAIL (Windows): abilitata nel Registro di sistema, PASS: modalità FIPS disabilitata. WARN (Linux): mancata corrispondenza con config.json. PASS: corrispondenza tra sistema operativo e configurazione |
| #7a | Versione di PowerShell | Windows | INFO: versione di PowerShell |
| #7b | Impostazioni locali del sistema | Windows | INFO: informazioni delle impostazioni locali del sistema |
| #7c | Integrità WMI | Windows | WARN: il repository WMI è incoerente |
Account e autorizzazioni
| ID controllo | Nome | Piattaforma | Condizione di errore (FAIL)/avviso (WARN) |
| #8 | Account di servizio | Linux, Windows | FAIL: account del servizio RMT o del servizio Windows non trovato |
| #9 | Appartenenza a gruppi | Linux | FAIL: gruppi di servizi obbligatori (ad esempio, rmtmasterapp, rmtmasterconfig e così via) mancanti |
| #10 | Systemd utente | Linux | FAIL: il daemon/linger systemd utente non è attivo |
| #44 | pamtester installato | Linux | WARN se non installato. Per risolvere il problema, installa yum install pamtester o apt install libpam-runtime |
Proprietà e autorizzazioni sulle directory per Linux
| ID controllo | Directory | Expected Owner:Group | Modalità prevista |
| #11 | Directory di configurazione | tabrmt-master:rmtmasterconfig | 2775 |
| #12 | Directory log | tabrmt-master:rmtmasterlogs | 2775 |
| #13 | Directory dati (+ sottodirectory PG/RMQ) | Appropriato per il componente | 2775 |
| #14 | Directory prerequisiti | root o utente componente | 755 |
| #14a | File rabbitmq-defaults | Group-writable obbligatorio | g+w |
| #15 | Directory certificato SSL | tabrmt-master:rmtopenssl | 2775 |
| #15a | Home directory | Utente componente | 770 |
| #15b | /etc/profile.d/tabrmt-*.sh | root | Predefinito |
| #15c | setgid bit directory di configurazione | -- | 2xxx obbligatorio |
| #16 | environment.bash | Utente componente | group-writable |
Gravità: FAIL per la proprietà solo per l’insieme data-dir (#13 e #15). Tutti gli altri controlli di Linux sulle directory (#11, #12, #14, #14a, #15a–c, #16) generano WARN in caso di mancata corrispondenza di proprietà o modalità perché la fase post-installazione del programma di installazione riapplica la proprietà durante l’aggiornamento. WARN se la modalità di autorizzazione non è corretta, ma la proprietà è corretta.
Proprietà e autorizzazioni per le directory in Windows
| Controllo | Nome | Gravità |
| #11 | ACL directory di configurazione | FAIL se l’utente del servizio non dispone dell’autorizzazione FullControl (Controllo completo) |
| #12 | ACL directory log | FAIL se l’utente del servizio non dispone di dell’autorizzazione Modify (Modifica) |
| #13 | Directory dati ACL (RMT Server) | FAIL se l’utente del servizio non dispone dell’autorizzazione FullControl (Controllo completo) per le directory dati PG/RMQ |
| #14 | ACL directory prerequisiti (RMT Server) | WARN se manca ReadAndExecute (avviso: ogni aggiornamento reinstalla i file MSI prerequisiti e le relative azioni post-installazione riapplicano gli ACL) |
| #15 | ACL directory certificati SSL (RMT Server) | FAIL se l’utente del servizio non dispone dell’autorizzazione FullControl (Controllo completo) |
| #16a | Identità utente del servizio | PASS (INFO. Mostra l’utente con cui viene eseguito il servizio) |
| #16b | Privilegio SeServiceLogonRight | INFO se trovato; WARN se non viene trovato o secedit non riesce |
| #16c | ACL utente servizio per le directory RMT | FAIL se l’utente del servizio non dispone dei diritti richiesti |
Database (PostgreSQL)
Tutti i controlli PostgreSQL vengono eseguiti solo su RMT Server.
| ID controllo | Nome | Richiede l’opzione --db-password | Condizione di errore (FAIL)/avviso (WARN) |
| #17 | Servizio PG | No | FAIL Servizio locale arrestato E disabilitato |
| #18 | Porta 5555 in ascolto | No | WARN (suggerimento gruppo di sicurezza/VPC / RDS) non in ascolto |
| #19 | DB Connection | Sì | WARN Impossibile connettersi al database interno (problema con SSL, password o rete) |
Messaggistica (RabbitMQ)
I controlli di messaggistica (RabbitMQ) vengono eseguiti solo su RMT Server.
| ID controllo | Nome | Condizione di errore (FAIL)/avviso (WARN) |
| #22 | Servizio RMQ | FAIL Servizio locale arrestato E disabilitato |
| #24 | Backlog coda | WARN in caso di coda con più di 10.000 messaggi |
| #25 | Utenti RabbitMQ | WARN se l’utente predefinito guest esiste ancora |
| #26 | Connessioni attive | Solo INFO. Indica il conteggio delle connessioni attive |
| #27 | Cookie Erlang accessibile | WARN se manca il file cookie, se le autorizzazioni sono errate (la modalità deve essere 400 o 600) |
| #27a | ERLANG_HOME impostato | WARN (solo Windows) se ‘ERLANG_HOME’ non è impostato o il percorso non esiste. |
| #27b | Validità SSL | FAIL se i certificati sono scaduti |
| #27c | Allarme disco | FAIL se < 10 GB liberi nella partizione RMQ (l’aggiornamento si bloccherà) |
| #45 | Directory dei certificati popolata | WARN se la directory dei certificati esiste ma è vuota o mancano i file di certificato previsti (certificato server, chiave, certificato dell’autorità di certificazione) |
Rete e configurazione
| ID controllo | Nome | Condizione di errore (FAIL)/avviso (WARN) |
| #28a/b | Comunicazioni agente-master | WARN L’agente non riesce a raggiungere il master attraverso la porta 5671, 5672, 80 o 443 |
| #33-35 | JSON/Bash Config | FAIL config.json, setup.json o environment.bash mancante o non valido |
| #36a | Versione notoriamente non valida | FAIL La versione corrente è 2025.3.0 (la regressione blocca l’aggiornamento) |
Servizi e backup
| ID controllo | Nome | Condizione di errore (FAIL)/avviso (WARN) |
| #38 | Tutti i servizi RMT in esecuzione | WARN per ogni servizio arrestato |
| #38a | Processi stranded | FAIL Processi tabrmt-* persistenti trovati dopo l’arresto dei servizi |
| #39 | Processore in background in esecuzione | WARN se il processo host non è in esecuzione |
| #40 | Promemoria per il backup pre-aggiornamento | WARN per ricordare di eseguire il backup della configurazione pre-aggiornamento |
| #41 | Topologia | Solo INFO. Indica il tipo di nodo master/agente e (con il database) il conteggio degli agenti attivi |
| #42 | Inventario delle versioni del componente | Solo INFO. Indica le versioni di RMT, PostgreSQL, RabbitMQ e OpenSSL |
| #43 | Riepilogo delle specifiche del computer | Solo INFO. Indica il sistema operativo, i core della CPU, la RAM, lo spazio libero su disco |
Controlli di integrità post-aggiornamento
Questi controlli vengono eseguiti dopo l’aggiornamento. Non causano blocchi e gli errori non interrompono l’aggiornamento, ma indicano problemi post-installazione.
| ID controllo | Nome | Componente | Condizione di errore (FAIL)/avviso (WARN) |
| #1a-d | Servizi e processi | RMT Server, Agent | FAIL I servizi principale, PG o RMQ non sono in esecuzione |
| #2 | Processo supervisore host | RMT Server, Agent | WARN Processo supervisore host mancante (senza ripristino automatico) |
| #3a-b | Integrità del file di configurazione | RMT Server, Agent | FAIL in caso di JSON mancante o non valido |
| #4a-b | Autorizzazioni file | RMT Server, Agent | FAIL Directory di configurazione o log non leggibili/scrivibili dall’account di servizio |
| #5a-d | Porta in ascolto | RMT Server | FAIL Porta Web (443), AMQP (5672) o DB (5555) non in ascolto |
| #6 | Connettività PostgreSQL | RMT Server | FAIL se PostgreSQL non accetta connessioni |
| #7 | Stato RabbitMQ | RMT Server | SKIP se esterno. FAIL dopo che tutti i tentativi sono stati esauriti. |
| #8a | Utilizzatori coda | RMT Server | WARN Backlog esistente ma nessun utilizzatore attivo (worker master disconnessi) |
| #9 | Allarmi RMQ | RMT Server | FAIL Rilevati allarmi attivi di risorse memoria o disco |
| #10 | Certificato SSL RabbitMQ | RMT Server | FAIL se il certificato è scaduto. WARN se il certificato scade entro 30 giorni |
| #11 | Corrispondenza FIPS | RMT Server, Agent | FAIL Lo stato FIPS del sistema operativo non corrisponde alla configurazione isFIPSEnabled |
| #12 | Risposta HTTP del server Web | RMT Server | Invia HTTP GET a ‘https://localhost:<port>/authentication/login’. PASS per 200 o 302. FAIL in caso di connessione rifiutata o timeout. WARN in caso di altri errori. |
| #13 | Validità del certificato HTTPS | RMT Server | FAIL se il certificato TLS del server Web è scaduto |
| #14a-d | Spazio su disco | RMT Server, Agent | FAIL: < 1 GB libero. WARN: < 5 GB liberi |
| #15 | Errori log recenti | RMT Server, Agent | FAIL se sono presenti errori FATAL nei log. WARN: in caso di errori CRITICAL |
| #16 | Stato RMT | RMT Server, Agent | FAIL Lo stato di rmtadmin restituisce i modelli di errore |
| #17 | Cronologia log Agent | Agente | Controlla i file di tracciamento dei log (.history, .json) nella directory dei dati dell’agente. WARN se i file sono illeggibili o danneggiati |
| #18a-f | Versione inventario | RMT Server, Agent | INFO sulla versione di RMT, la versione di PostgreSQL, RabbitMQ, Erlang/OTP, su .NET Runtime (Windows), sul sistema operativo (Linux), sulla versione del sistema operativo (Windows), sul Kernel (Linux) |
Codici di uscita del controllo dell’integrità
Utilizza i codici di uscita seguenti per interpretare i risultati degli script di controllo dello stato di integrità pre-aggiornamento e post-aggiornamento.
Script pre-aggiornamento
| Codice di uscita | Stato | Comportamento dell’aggiornamento |
| 0 | READY TO UPGRADE | L’aggiornamento procede |
| 1 | UPGRADE WITH CAUTION | L’aggiornamento procede; Esaminare gli avvisi |
| 2 | Non eseguire l’aggiornamento | Aggiornamento annullato |
| 3 | Errore script | Controllare l’ambiente di esecuzione |
Script post-aggiornamento
| Codice di uscita | Stato |
| 0 | ALL PASSED |
| 1 | WARNINGS PRESENT |
| 2 | CRITICAL FAILURES |
Modifiche di gravità con InstallerContext
Se eseguiti con -InstallerContext durante gli aggiornamenti MSI Windows automatici, i controlli che seguono si comportano in modo diverso dall’impostazione predefinita manuale. Il comportamento predefinito (senza InstallerContext) è *già* WARN per gli stati “arrestato ma non disabilitato” o ”porta non in ascolto”. FAIL è riservato ad “arrestato E disabilitato”. Con -InstallerContext, anche il tipo di problema ‘disabilitato’ viene segnalato come WARN in modo che un aggiornamento in corso guidato dal programma di installazione non venga mai bloccato da uno stato temporaneo che il programma di installazione sta per correggere.
| Controllo | Nome | Predefinito | InstallerContext |
| #17 | Servizio PG | WARN se arrestato, FAIL se arrestato e disabilitato, INFO se tutto è stato arrestato | WARN |
| #18 | Porta PG | WARN se non in ascolto, INFO se tutti i servizi sono stati arrestati | WARN |
| #22 | Servizio RabbitMQ | WARN se arrestato, FAIL se arrestato e disabilitato, INFO se tutto è stato arrestato | WARN |
| #23 | Port 5672 (AMQP) | WARN se non in ascolto, INFO se tutti i servizi sono stati arrestati | WARN |
| #38a | Processi RMT stranded | (consulta la descrizione del controllo) | SKIP (il programma di installazione gestisce il ciclo di vita del processo) |
Soglie pre-aggiornamento
| Soglia | RMT Server | Agente | Unità |
| FAIL per lo spazio su disco | 20 | 5 | Indipendente da GB |
| WARN per lo spazio su disco | 50 | 10 | Indipendente da GB |
| FAIL directory temporanea | 5 | 5 | Indipendente da GB |
| WARN directory temporanea | 10 | 10 | Indipendente da GB |
| FAIL RAM | 8 | 4 | GB |
| WARN RAM | 16 | 8 | GB |
| FAIL CPU | 4 | 2 | core |
| WARN CPU | 8 | 4 | core |
| FAIL dimensione database | 500 | - | GB |
| WARN dimensione database | 200 | - | GB |
| FAIL schema Hangfire | 10 | - | GB |
| WARN schema Hangfire | 1 | - | GB |
| FAIL directory WAL (Windows) | 10 | - | GB |
| FAIL directory WAL (Windows) | 2 | - | GB |
| FAIL directory WAL (Linux) | 10 | - | GB |
| WARN directory Mnesia | 5 | - | GB |
| FAIL allarme disco RabbitMQ | 10 | - | Indipendente da GB |
| WARN backlog coda | 10.000 | - | messaggi |
| WARN scadenza certificato | 30 | 30 | giorni |
| WARN conservazione prima della pulizia | 180 | - | giorni |
| WARN rapporto tuple morte | 20 | - | per cento |
| Heartbeat agente non aggiornato | 15 | - | minuti |
| WARN età del driver di rete | 3 | - | anni |
| WARN Dimensione della directory log | 5 | 5 | GB |
| WARN Dimensione della directory log (grave) | 20 | 20 | GB |
Soglie post-aggiornamento
| Soglia | Valore | Unità |
| FAIL per lo spazio su disco | 1 | Indipendente da GB |
| WARN per lo spazio su disco | 5 | Indipendente da GB |
| WARN scadenza certificato | 30 | giorni |
| WARN backlog coda | 10.000 | messaggi |
| Finestra scansione log | 60 | minuti |
| Tentativi di avvio di RabbitMQ | 6 tentativi x 5 secondi | 30 secondi in totale |
Versioni minime dei componenti supportate
| Componente | Versione minima |
| RabbitMQ | >= 3.10.10 |
| Versione agente | >= 2023.1.0 |
Automazione e integrazione CI/CD
Per 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
```
Per Windows:
```powershell
# Windows
.\rmt-pre-upgrade-check.ps1 -Component master
if ($LASTEXITCODE -eq 2) {
Write-Error "BLOCKED: Fix critical issues before upgrading"
exit 1
}
```
Riferimento per le directory di installazione
Per richiamare manualmente le utilità di diagnostica sottostanti o verificare la struttura di installazione, fai riferimento ai percorsi di directory specifici della piattaforma:
Struttura delle directory 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
```
Struttura delle directory Windows
```
C:\Program Files\Tableau\Tableau Resource Monitoring Tool\ # Install root
C:\ProgramData\Tableau\Tableau Resource Monitoring Tool\ # Data root
```
Porte di rete richieste
| Porta | Servizio | Direzione |
| 80 | Interfaccia utente Web RMT (HTTP) | In entrata |
| 443 | Interfaccia utente Web RMT (HTTPS) | In entrata |
| 5672 | AMQP RabbitMQ | In ingresso in RMT Server |
| 5671 | AMQP over TLS RabbitMQ | In ingresso in RMT Server |
| 15672 | Interfaccia utente di gestione RabbitMQ | Locale |
| 25672 | Internodo RabbitMQ | Locale |
| 5555 | PostgreSQL interno | Locale |
