Installare Bridge per Linux per contenitori

Bridge per Linux offre scalabilità e funzionalità ottimizzate per la gestione dei carichi di lavoro basati su contenitori. Le seguenti istruzioni descrivono un approccio semplice per eseguire Bridge per Linux e presuppongono una conoscenza di base di Docker e dei termini chiave utilizzati nell’ecosistema.

Installare ed eseguire Bridge da un contenitore Docker

Per utilizzare Bridge in Linux, è necessario creare un’immagine Docker personalizzata, installare il pacchetto RPM e quindi eseguire Bridge dall’interno dell’immagine del contenitore.

Prerequisiti

  • Motore Docker installato. Per l’immagine di base del contenitore Docker, Bridge su Linux è supportato in:
    • Amazon Linux 2
    • Amazon Linux 2023
    • Red Hat 8.3 e versioni successive

      Nota: CentOS non è supportato.

  • Il pacchetto RPM di Tableau Bridge più recente, disponibile nella pagina Download(Il collegamento viene aperto in una nuova finestra) del sito Web di Tableau.
  • Esperienza con il sistema operativo Linux.
  • Nozioni di base sullo scripting della shell.
  • Esperienza Docker.
  • Token di accesso personale dell’amministratore del sito Tableau. Si consiglia di utilizzare un token di accesso personale per ogni client Bridge.

Fase 1. Creare un’immagine del contenitore Bridge

Le fasi seguenti rappresentano le istruzioni principali per creare un’immagine di base Bridge su Linux. Per maggiori informazioni, consulta Panoramica di Docker (in inglese).

Quando Docker è installato, l’unico utente che dispone dell’autorizzazione per eseguire i comandi è root. Puoi eseguire i comandi Docker con sudo o da un utente membro del gruppo docker.

  1. Scarica il pacchetto .rpm di Bridge dalla pagina Download(Il collegamento viene aperto in una nuova finestra) sul sito Web di Tableau.
  2. (Facoltativo) Puoi modificare le impostazioni di configurazione per cambiare la modalità di esecuzione del client. Per maggiori informazioni, consulta Modificare le impostazioni del client Bridge.
  3. Crea una directory di lavoro e sposta il pacchetto .rpm nella directory.

    cd ~

    $ mkdir Docker

    $ cd Docker

    $ mv <RPM_location>.rpm .

  4. Crea un file Docker nella directory di lavoro. Ad esempio:

    $ touch Dockerfile

  5. Modifica il file Docker e aggiungi i comandi per eseguire yum update.

    Esempio per Red Hat

    Per Red Hat 8:

    FROM registry.access.redhat.com/ubi8/ubi:latest

    RUN yum -y update

  6. Modifica il file Docker, quindi immetti i comandi per copiare, installare e rimuovere il pacchetto RPM di Bridge dall'immagine. Ad esempio:

    COPY <your_bridge_rpm>.rpm /<path_of_container>

    RUN ACCEPT_EULA=y yum install -y $(find . -name *.rpm) && rm -rf *.rpm

  7. Crea una nuova immagine del contenitore utilizzando il comando di creazione docker.

    Ad esempio, il comando seguente crea un’immagine nella directory corrente, contrassegnandola con la parola ​"bridge_base".

    docker buildx build --platform=linux/amd64 -t bridge_base .

  8. Verifica che l’immagine di base creata sia visualizzata nell’elenco delle immagini:

    docker images | grep bridge

Fase 2. Installare i driver

Il client Bridge richiede driver per facilitare la connettività tra i dati della rete privata e Tableau Cloud. Per i driver, visita la pagina di download dei driver, seleziona l’origine dati, quindi seleziona Linux per il sistema operativo.

  1. L’installazione può essere eseguita in modo interattivo dopo l’avvio dell’immagine di base oppure è possibile scrivere Dockerfile separati da aggiungere all’immagine di base.

    Esempio

    Dopo aver copiato il pacchetto RPM del driver MySQL nella directory, puoi creare una directory di lavoro separata per aggiungere i driver MySQL utilizzando il seguente Dockerfile:

    # Using previously built bridge_base image

    FROM bridge_base COPY mysql-connector-odbc-8.0.26-1.el7.x86_64.rpm .

    RUN yum install -y mysql-connector-odbc-8.0.26-1.el7.x86_64.rpm

    Esempio

    Installa un driver JDBC Postgres. Questa operazione può essere eseguita anche in un Dockerfile separato.

    # Using previously built bridge_base image

    FROM bridge_base COPY postgresql-42.3.3.jar /opt/tableau/tableau_driver/jdbc/

    Esempio

    Installa il driver Amazon Redshift.

    # Using previously built bridge_base image

    FROM bridge_base

    yum install -y unixODBC

    yum --nogpgcheck localinstall -y

    AmazonRedshiftODBC-64-bit-1.4.59.1000-1.x86_64.rpm

    odbcinst -i -d -f /opt/amazon/redshiftodbc/Setup/odbcinst.ini

  2. Crea una nuova immagine:
  3. docker image build -t bridge_final .

    L’immagine bridge_final utilizza l’immagine memorizzata nella cache della fase precedente e automatizza l’installazione del driver per tutte le istanze di Bridge. Se disponi di un repository di immagini, puoi pubblicare l’immagine nel repository e distribuirla a tutti i computer su cui desideri eseguire Bridge.

Fase 3. Eseguire il contenitore Bridge

Ora che hai creato un’immagine di base, puoi distribuirla utilizzando diversi metodi. I passaggi fondamentali sono:

  1. Avviare l’istanza del contenitore Bridge.
  2. Accedere e avviare il worker.
  3. Assegnare l’agente a un pool.

Nota: Bridge per Linux non supporta le pianificazioni legacy di Bridge. Per maggiori informazioni, consulta Eseguire la migrazione da pianificazioni Bridge (legacy) a pianificazioni Online.

  1. Prima di iniziare a distribuire il contenitore, crea un file token di accesso personale. Il token di accesso personale è necessario per accedere all’agente. Tableau Cloud supporta 104 token di accesso personali per ogni utente. Si consiglia di utilizzare un token di accesso personale per ogni client.

    Nota: i seguenti nomi di token devono corrispondere: patTokenId (utilizzato durante l’esecuzione del comando run-bridge.sh), il nome del token nel file JSON e il nome del token durante la generazione del token di accesso personale in Tableau Cloud.

  2. Specifica le impostazioni locali in Docker utilizzando ENV LC_ALL en_US.UTF-8. Puoi anche impostare le impostazioni locali aggiungendo quanto segue al file /etc/profile:
  3. export LANG="en_US.utf8"

    export LANGUAGE="en_US.utf8"

    export LC_ALL="en_US.utf8"

  4. Avvia un’istanza del contenitore Bridge. Esistono molti modi per configurare e avviare l’immagine del contenitore. Il seguente metodo interattivo illustra le fasi necessarie per avviare il worker. Quando esci, l’esecuzione del contenitore viene interrotta.
    1. Utilizza il metodo seguente per passare al prompt della shell per il contenitore come root. Il resto dei comandi viene eseguito nel contesto di questa sessione interattiva del contenitore.

      docker container run -it bridge_final /bin/bash

    2. Aggiungi il token di accesso personale a un file flat in formato JSON. Ad esempio:

      /home/jSmith/Documents/MyTokenFile.txt

    3. Sintassi del token di esempio:

      {"MyToken" : "uLICC7e8SUS8ZNGe8RIFn4u==:lRihmYHI0XBKle7e8S4uSORXGqAkAl4"}

    4. Modifica le autorizzazioni del file per limitare l’accesso all’utente corrente. Ad esempio:

      chmod 600 MyTokenFile.txt

    5. Avvia il worker con il comando run-bridge.sh e specifica le seguenti opzioni di comando:

      ComandoDescrizione
      --patTokenIdID del token di accesso personale. Per maggiori informazioni, consulta Token di accesso personali.
      --userEmailE-mail dell’utente associata al token di accesso personale.
      --clientNome da assegnare al worker.
      --siteNome del sito visualizzato nell’URI. Non includere il percorso URI.
      --patTokenFileNome e percorso del file di testo del token di accesso personale.
      -e(Facoltativo) Per impostazione predefinita, il worker client Bridge viene eseguito come servizio in background. Per eseguire il worker in primo piano, includi l'argomento -e.
      --poolId(Facoltativo) ID del pool assegnato al client. Vedi Utilizzo di un ID del pool.

      Esempio di comando

      /opt/tableau/tableau_bridge/bin/run-bridge.sh -e --patTokenId="Mytoken" --userEmail="admin@tableau.com" --client="myBridgeAgent" --site="mySite" --patTokenFile="/home/jSmith/Documents/MyTokenFile.txt" --poolId="1091bfe4-604d-402a-b41c-29ae4b85ec94"

      Nota: se si installano versioni precedenti di Bridge per Linux, è necessario eseguire un comando diverso per avviare il worker. Per le versioni 2024.2 e precedenti, avviare il worker con TabBridgeClientWorker comando (non il comando run-bridge.sh. Tutte le opzioni dei comandi sono le stesse.

  5. Il messaggio seguente indica che l’agente è avviato. “Service started: ...”

    Utilizza Control-C per arrestare il worker. Invece di riavviare il worker, puoi avviare un nuovo worker per l’immagine del contenitore.

    Se non hai assegnato un pool utilizzando l’opzione di comando --poolId, il client viene assegnato al pool predefinito. Se desideri utilizzare il client con domini o connessioni virtuali specifici, puoi assegnare il client a un pool denominato tramite l’interfaccia utente. Il menu corrispondente in Tableau Cloud è disponibile in Home > Impostazioni > Bridge. Per maggiori informazioni, consulta Configurare il pool di client Bridge.

Utilizzo di un ID del pool

Quando si avvia il worker Bridge con il comando run-bridge.sh, poolId è facoltativo. Tuttavia, il comportamento del client dipende dal fatto che sia registrato o meno in un sito e che sia assegnato a un pool. Tableau Bridge può connettersi o eseguire la registrazione a un solo sito Tableau Cloud in qualsiasi momento. Il client viene registrato su un sito quando si effettua la disconnessione e si accede nuovamente.

Se non viene fornito un ID del pool

  • Se il client Bridge è stato registrato, lo stato del client rimane invariato:
    • Se il client è assegnato a un pool, rimarrà assegnato al pool, indipendentemente dal fatto che si tratti di un pool denominato o di un pool predefinito.
    • Se il client non è assegnato a un pool, rimarrà non assegnato.
  • Se il client Bridge è nuovo (non hai mai effettuato l’accesso a Tableau Cloud), viene assegnato al pool predefinito.

Se viene fornito un ID del pool

  • Se viene fornito l’ID del pool ed è corretto, il client Bridge viene assegnato al pool denominato.
  • Se l’ID del pool fornito è errato:
    • Se il client Bridge non è registrato, viene assegnato al pool predefinito.
    • Se il client Bridge è registrato, lo stato del client rimane invariato, indipendentemente dal fatto che appartenga a un pool denominato, a un pool predefinito o sia non assegnato.

Trovare l’ID del pool

Per trovare l’ID del pool, passa alla pagina Impostazioni > Bridge e fai clic sul nome del pool. Ad esempio:

Risoluzione dei problemi

Installazione di versioni precedenti

Se si installano versioni precedenti di Bridge per Linux, è necessario eseguire un comando diverso per avviare il worker. Per le versioni 2024.2 e precedenti, avvia il worker con il comando TabBridgeClientWorker e non con il comando run-bridge.sh.

Tutte le opzioni del comando sono uguali a quelle documentate sopra in Fase 3. Eseguire il contenitore Bridge.

Ad esempio: 

/opt/tableau/tableau_bridge/bin/TabBridgeClientWorker -e --patTokenId="Mytoken" --userEmail="admin@tableau.com" --client="myBridgeAgent" --site="mySite" --patTokenFile="/home/jSmith/Documents/MyTokenFile.txt" --poolId="1091bfe4-604d-402a-b41c-29ae4b85ec94"

Errore di avvio del worker

In alcuni casi, dopo aver eseguito il comando run-bridge.sh verrà visualizzato il seguente errore:

Missing log in parameters. Aborting the attempt to start service worker.

Nella maggior parte dei casi, rieseguire il comando con le opzioni originali e l'opzione -e risolve il problema. L'opzione -e esegue il servizio worker Bridge in primo piano.

Utilizzo dei file di log

I file di log sono archiviati nella cartella My_Tableau_Bridge_Repository/Logs dell’utente. Per salvare i log in una cartella tmp , esegui questo comando:

docker container run --volume /tmp/bridge_logs:/root/Documents/My_Tableau_Bridge_Repository/Logs -it bridge_final /bin/bash

In questo esempio, il percorso è specificato da /tmp/bridge_logs. L’utilizzo del comando Docker semplifica il salvataggio dei file di log ed evita di dover copiare manualmente i file di log di Bridge dal contenitore al file system locale.

Errore del driver MySQL

Se LC_MESSAGES non è impostato con impostazioni locali UTF-8, potresti riscontrare problemi di lettura e visualizzazione. Puoi modificare il file /etc/profile o riavviare il worker utilizzando il comando seguente:

LC_ALL=en_US.UTF-8 /opt/tableau/tableau_bridge/bin/run-bridge.sh -e

Il client Bridge si arresta in modo imprevisto a causa della scadenza del token di accesso personale

Quando un token di accesso personale (PAT) scade, il client Bridge si disconnette da Tableau Cloud e potrebbe causare l'arresto del contenitore. Dal client Bridge puoi verificare se il tuo PAT è scaduto eseguendo il comando Avvia in primo piano. Se il PAT non è abilitato, verrà visualizzato il seguente errore:

The client credentials are invalid. To complete the request, reset the credentials, and sign in to the Tableau Bridge client.

Se sei il proprietario originale del PAT, puoi anche verificare se il PAT è scaduto visitando Gestisci impostazioni account in Tableau Cloud. Per risolvere il problema, sarà necessario generare un nuovo PAT e seguire le fasi sopra indicate, Fase 3. Eseguire il contenitore Bridge.

Errori di timeout di estrazioni incorporate e connessioni live incorporate

Alla versione 24.3 di Bridge per Linux sono stati apportati miglioramenti significativi a livello di prestazioni degli estratti incorporati e delle connessioni live incorporate. Se si verificano errori di timeout nelle versioni precedenti, si consiglia di eseguire l'aggiornamento alla versione 24.3 di Bridge per Linux. Se il problema persiste, pubblica l'origine dati separatamente rispetto alla cartella di lavoro.

Grazie per il tuo feedback.Il tuo feedback è stato inviato. Grazie!